【问题标题】:Bind RadiobuttonList inside DataList在 DataList 中绑定 RadiobuttonList
【发布时间】:2014-09-02 08:07:38
【问题描述】:

早上好。 我在这里发帖之前搜索了很多次。 我正在做一个像调查这样的项目[问题和答案] 我能够得到数据列表中的所有问题,现在我正在寻找一种方法来在每个问题内的单选按钮列表中显示答案。

这是页面加载

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>

我不知道如何绑定单选按钮列表并将答案分组。 注意:问题表和答案表之间的公共列是 Question_id

【问题讨论】:

  • 您是在显示答案还是试图让用户记录他们的答案?表“Qs”是否包含具有位值的列?
  • 对不起特雷弗,我不明白你的意思。但是看,Qs 表有 [Qid, Question] 只有我会创建另一个 SQLDATAAdapter 来根据 Question ID 从 Answer 表中获取数据。

标签: c# sql asp.net


【解决方案1】:

Fit 将制作一个如下所示的模板。

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

之后,您可以使用 DataList1_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
        }

    }

【讨论】:

  • 1000000000 感谢 seminda :),它可以工作,但我们必须添加 e.Item.ItemType == ListItemType.AlternatingItem 以显示所有问题的所有答案,谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
相关资源
最近更新 更多