DataList数据绑定

      问题描述:准备做个试卷一样的页面,这个是里面的单选题目,上面要求有题目,下面是题目对应的答案。
      有2张表,一张表是保存题目,另外一张表是保存题目对应的答案。
     
      实现效果:
     

      解决方法:使用DataList进行绑定,先对题目用Label控件绑定,题号用hiddenField绑定。关键的地方是在DataList的ItemDataBound事件里对答案RadioButtonList继续绑定。
     
       数据绑定的方法,不要说不会。
     
       对应的页面代码。

    <form id="form1" runat="server">
    <div>
        <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("subjectcontent") %>'></asp:Label>
                <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("subjectid") %>' />
                &nbsp;<br />
                        <asp:RadioButtonList ID="RadioButtonList1" runat="server">
                        </asp:RadioButtonList>
            </ItemTemplate>
        </asp:DataList>&nbsp;<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
            Text="看看选了什么答案" /></div>
    </form>

          对应的事件,页面加载,绑定题目。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DBClient db = new DBClient("examinationmei2");
            string sql = "select  * from optionsubject order by subjectid";
            DataTable dt = db.getSQLTable(sql, "dt");
            DataList1.DataSource = dt;
            DataList1.DataBind();
        }
    }    

        对应的ItemDataBound事件:

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        RadioButtonList rbl = (RadioButtonList)e.Item.FindControl("RadioButtonList1");       
        HiddenField hf = (HiddenField)e.Item.FindControl("HiddenField1");
        if ((rbl != null)&(hf != null))
        {
            string sql = "select subjectid,optionid, optioncontent from optiontab where subjectid='"+hf.Value.ToString().Trim()+"'";
            rbl.DataTextField = "optioncontent";
            rbl.DataValueField = "optionid";
            DBClient db = new DBClient("examinationmei2");
            DataTable dt = db.getSQLTable(sql, "dt");
            rbl.DataSource = dt;
            rbl.DataBind();
        }
    }

      判断结果,采用遍历方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值