繁体   English   中英

错误:- 数据绑定:“System.Data.DataRowView”不包含名为“Optiont4”的属性

[英]ERROR :- DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Optiont4'

.aspx页面中,我使用 Label Control 以显示数据库中的问题,4 个单选按钮以显示与特定问题相关的四个选项,最后但并非最不重要的是,我使用了隐藏字段,其中我将存储特定问题的答案。 最后,我采用了一个按钮控件,为此我创建了 onclick 事件,我将在该事件上执行操作以生成分数。

.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

这里的错误行号是 .aspx 页面中的 30

看看我的代码。 告诉我我是否犯了错误以及解决方案是什么。

.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;

}


}

您的GridView2定义中有输入错误。

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

应该

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM