2016-04-29 87 views
1

.aspx页面中,我已将Label控件显示为数据库的问题, 4单选按钮以显示与特定问题相关的四个选项,最后但并非最不重要的是,我使用隐藏字段来存储特定问题的答案。 最后,我采用了一个按钮控件,为此我创建了onclick事件,我将在该事件上执行操作以生成乐谱。错误: - DataBinding:'System.Data.DataRowView'不包含名称为'Optiont4'的属性

.aspx.cs页,按钮的onclick事件,我已经取控制使用下述代码形式aspx页面,并且为了进一步看到我用if语句,其单选按钮处于活动状态,并将相应的值存储在变量“selans”中,使用这个“selans”,我将它与隐藏字段的值进行比较,以查找是否选中的单选按钮是否正确答案,答案是正确的,即“selans”中的值与隐藏字段中的值(实际答案)匹配,而变量“count”(最初初始化为值0)相应地递增,并且所有代码都放在“for循环”这将执行到不。 GridView中的控件(您可以将它与问题编号关联起来,就像GridView生成新控件的每个记录一样)。

但是当我运行它,我得到这个错误: -

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Optiont4'. 
 

 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
 

 
Exception Details: System.Web.HttpException: DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Optiont4'. 
 

 
Source Error: 
 

 

 
Line 115:   <asp:RadioButton ID="rad2" runat="server" Text='<%#Eval("Option2") %>' GroupName="A" /> 
 
Line 116:   <asp:RadioButton ID="rad3" runat="server" Text='<%#Eval("Option3") %>' GroupName="A" /> 
 
Line 117:   <asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Optiont4")%>' GroupName="A" /> 
 
Line 118:   <asp:HiddenField ID="hf" runat="server" Value='<%#Eval("CorrectAns")%>' /> 
 
Line 119: 
 

 
Source File: e:\Way2Success\Student\Examdemo.aspx Line: 117

这里的错误行数为30 .aspx页面中

看一看我的代码。告诉我,我正在犯错,解决方案是什么。

的.aspx: -

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Examdemo.aspx.cs" Inherits="Student_Examdemo" %> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head runat="server"> 
 
    <title></title> 
 
    </head> 
 
<body> 
 
    <form id="form2" runat="server"> 
 
     <div> 
 
<div id="tabs"> 
 
    <ul> 
 
     <li><a href="#tabs-1">Tab 1</a></li> 
 
     <li><a href="#tabs-2">Tab 2</a></li> 
 
     <li><a href="#tabs-3">Tab 3</a></li> 
 
     <li><a href="#tabs-4">Tab 4</a></li> 
 
     <li><a href="#tabs-5">Tab 5</a></li> 
 
    </ul> 
 
    <div id="tabs-1"> 
 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" > 
 
    <Columns> 
 
     <asp:TemplateField> 
 
      <ItemTemplate> 
 
      <asp:Label ID="Label1" runat="server" Text='<%#Eval("Question") %>'></asp:Label> 
 
      <br /> 
 
      <br /> 
 
      <br /> 
 
      <asp:RadioButton ID="rad1" runat="server" Text='<%#Eval("Option1") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad2" runat="server" Text='<%#Eval("Option2") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad3" runat="server" Text='<%#Eval("Option3") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Option4") %>' GroupName="A" /> 
 
      <asp:HiddenField ID="hf" runat="server" Value='<%#Eval("CorrectAns") %>' /> 
 

 
     <br /> 
 
     <br /> 
 

 
       </ItemTemplate> 
 
     </asp:TemplateField> 
 
    </Columns> 
 
</asp:GridView> 
 
    
 
    </div> 
 
    <div id="tabs-2"> 
 
     
 

 
     <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" > 
 
    <Columns> 
 
     <asp:TemplateField> 
 
      <ItemTemplate> 
 
      <asp:Label ID="Label1" runat="server" Text='<%#Eval("Question") %>'></asp:Label> 
 
      <br /> 
 
      <br /> 
 
      <br /> 
 
      <asp:RadioButton ID="rad1" runat="server" Text='<%#Eval("Option1") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad2" runat="server" Text='<%#Eval("Option2") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad3" runat="server" Text='<%#Eval("Option3") %>' GroupName="A" /> 
 
      <asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Optiont4")%>' GroupName="A" /> 
 
      <asp:HiddenField ID="hf" runat="server" Value='<%#Eval("CorrectAns")%>' /> 
 

 
     <br /> 
 
     <br /> 
 

 
       </ItemTemplate> 
 
     </asp:TemplateField> 
 
    </Columns> 
 
</asp:GridView> 
 

 
    </div> 
 
    <div id="tabs-3"> 
 
     Tab 3 Content 
 
    </div> 
 
    <div id="tabs-4"> 
 
     Tab 4 Content 
 
    </div> 
 
    <div id="tabs-5"> 
 
     Tab 5 Content 
 
    </div> 
 
</div> 
 
<input type="button" id="btnPrevious" value="Previous" style = "display:none"/> 
 
<input type="button" id="btnNext" value="Next" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 
      
 
      <asp:Button class="panelButton" runat="server" Text="Finish the exam" ClientIDMode="Static" OnClick="btn_Click" /> 
 
      <br /> 
 
    </div> 
 
    </form> 
 
</body> 
 
</html>

.aspx.cs: -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Configuration; 


public partial class Student_Examdemo : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
    { 
     GridView1.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions"); 
     GridView1.DataBind(); 
     GridView2.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions WHERE SectionId=2"); 
     GridView2.DataBind(); 

private DataSet GetData(string query) 
{ 
    string conString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    SqlCommand cmd = new SqlCommand(query); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     using (SqlDataAdapter sda = new SqlDataAdapter()) 
     { 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 
      using (DataSet ds = new DataSet()) 
      { 
       sda.Fill(ds); 
       return ds; 
      } 
     } 
    } 
} 

protected void btn_Click(object sender, EventArgs e) 
{ 

      RadioButton r1, r2, r3, r4; 
      HiddenField hdn; 
      int count = 0; 
      int neg = 0; 
      int total; 
      int totalf=0; 
      int totals=0; 
      int totalt; 
      int totalfo; 
      int totalfi; 
      string selans = "-1"; 
      for (int i = 0; i < GridView1.Rows.Count; i++) 
      { 
       r1 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad1"); 
       r2 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad2"); 
       r3 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad3"); 
       r4 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad4"); 
       hdn = (HiddenField)GridView1.Rows[i].Cells[0].FindControl("hf"); 
       if (r1.Checked) 
       { 
        selans = r1.Text; 
       } 
       else if (r2.Checked) 
       { 
        selans = r2.Text; 
       } 
       else if (r3.Checked) 
       { 
        selans = r3.Text; 
       } 
       else if (r4.Checked) 
       { 
        selans = r4.Text; 
       } 

       if (hdn.Value == selans) 
       { 
        count++; 
       } 
       else 
       { 
        neg--; 
       } 

       totalf = count + neg; 


      } 

    for (int i = 0; i < GridView2.Rows.Count; i++) 
    { 
     r1 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad1"); 
     r2 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad2"); 
     r3 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad3"); 
     r4 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad4"); 
     hdn = (HiddenField)GridView2.Rows[i].Cells[0].FindControl("hf"); 
     if (r1.Checked) 
     { 
      selans = r1.Text; 
     } 
     else if (r2.Checked) 
     { 
      selans = r2.Text; 
     } 
     else if (r3.Checked) 
     { 
      selans = r3.Text; 
     } 
     else if (r4.Checked) 
     { 
      selans = r4.Text; 
     } 

     if (hdn.Value == selans) 
     { 
      count++; 
     } 
     else 
     { 
      neg--; 
     } 

     totals = count + neg; 

    } 
    total = totalf + totals; 
    Session["score"] = total; 

} 


} 
+0

它是否应该被OPTION4别人,而不是像optiont4? –

回答

1

您的GridView2定义打字错误。

<asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Optiont4")%>' GroupName="A" /> 

<asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Option4")%>' GroupName="A" /> 
相关问题