在DataList中绑定RadiobuttonList

时间:2014-09-01 23:52:07

标签: c# sql asp.net

早上好。 在发布之前我多次搜索。 我正在开展一项类似调查的项目[问题与解答] 我能够在datalist中获得所有问题,现在我正在搜索在每个问题内的单选按钮列表中显示答案的方法。

这是页面加载

protected void Page_Load(object sender, EventArgs e)
    {
        string CS = ConfigurationManager.ConnectionStrings["TMConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(CS);

        //Getting All Questions

        SqlDataAdapter dr = new SqlDataAdapter("select * from Question ", con);
        DataSet ds = new DataSet();
        dr.Fill(ds, "Qs");
        OuterDataList.DataSource = ds.Tables["Qs"];
        OuterDataList.DataBind();
    }

这是页面正文

<body>
<form id="form1" runat="server">
<h1>Test Page</h1>
    <asp:DataList ID="OuterDataList" RunAt="server">
    <ItemTemplate>
      <h4><%# DataBinder.Eval (Container.DataItem, "Question") %></h4>
        <asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList>
    </ItemTemplate>
  </asp:DataList>
 </form>

我不知道如何绑定radiobuttonlist并将答案分组。 注意:Question表和Answer表之间的公共列是Question_id

1 个答案:

答案 0 :(得分:1)

首先会制作如下的模板。

<asp:DataList runat="server" ID="DataList1" RepeatDirection="Vertical" 
DataKeyField="QuestionID" onitemdatabound="DataList1_ItemDataBound">
<ItemTemplate>
    <table>
        <tr>
            <td>
                <%# Eval("Question") %>
            </td>
        </tr>
        <tr>
            <td>
                <asp:RadioButtonList runat="server" ID="RadioButtonList1">
                </asp:RadioButtonList>
            </td>
        </tr>
    </table>
</ItemTemplate>

之后使用DataList ItemDataBound,你可以绑定你的答案。

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item)
        {
            RadioButtonList RadioButtonList1 = (RadioButtonList)e.Item.FindControl("RadioButtonList1");
            //Get questionID here
            int QuestionID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "QuestionID"));
            //pass Question ID to your DB and get all available options for the question
            //Bind the RadiobUttonList here
        }

    }