`
smartgz
  • 浏览: 67711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

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();
        }
    }

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics