2016-04-29 66 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" /> 
相關問題