为中继器生成的多个单选按钮列表设置id

本文关键字:单选按钮 列表 设置 id 中继器 | 更新日期: 2023-09-27 18:25:36

是否有方法设置通过中继器生成的多个单选按钮列表的ID。即ID=rep1 rep2 rep3 rep4我希望能够将我的数据放在一个表的多列中。

这是我到目前为止的代码:

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: Title %></h2>
<h3>Your application description page.</h3>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <asp:Label ID="lblQuestion" runat="server" Text='<%# Eval("Text") %>' />
         <asp:RadioButtonList ID="ddlAnswer" runat="server" AutoPostBack="True" RepeatDirection="Horizontal">
             <asp:ListItem Text="Yes" Value="True" />
             <asp:ListItem Text="No" Value="False" />
          </asp:RadioButtonList>
        <asp:Panel ID="Panel1" runat="server">
            <asp:Label ID="Label1" runat="server" Text="Provide more details:"></asp:Label>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </asp:Panel>
        </p>
     </ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [Text] FROM [Questions]"></asp:SqlDataSource>

背后:

 protected void Page_Load(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in Repeater1.Items)
        {
            RadioButtonList ddlAnswer = item.FindControl("ddlAnswer") as RadioButtonList;
            System.Web.UI.WebControls.Panel Panel1 = item.FindControl("Panel1") as System.Web.UI.WebControls.Panel;
            if (ddlAnswer.SelectedValue == "False")
            {
                Panel1.Visible = true;
            }
            else
            {
                Panel1.Visible = false;
            }
        }
    }

为中继器生成的多个单选按钮列表设置id

您只需在aspx标记中使用ClientIdMode="Predictable"属性,即可将不同的ID分配给不同的下拉列表,如下所示:

<asp:RadioButtonList ClientIDMode="Predictable" ID="ddlAnswer" runat="server" AutoPostBack="True" RepeatDirection="Horizontal"> ...