从Repeater访问所有RadioButton

时间:2014-08-26 18:54:48

标签: c# asp.net

我有Repeater RadioButton。有没有一种简单的方法可以从C#端访问所有这些RadioButton?例如,可能是GroupName的访问?我在网上找不到任何简单的东西。

ASPX:

<asp:Repeater ID="rptOtherNetworks" runat="server" >
    <HeaderTemplate>
        <li data-theme="c" data-role="list-divider" class="ui-li ui-li-divider ui-bar-b">
            <asp:Localize ID="locRecentlySelected" runat="server"
                EnableViewState="False" meta:resourcekey="locRecentlySelectedResource1"
                Text="Select Network from Other Cameras">
            </asp:Localize>
        </li>
    </HeaderTemplate>
    <ItemTemplate>
        <li data-theme="c">
            <!-- I want to access these -->
            <asp:RadioButton Text='<%# Eval("NetworkDescription") %>' data-mac='<%# Eval("MAC") %>'
                Checked="False" GroupName="RadioGroupNetworkCameras" runat="server" />
        </li>
    </ItemTemplate>
</asp:Repeater>

1 个答案:

答案 0 :(得分:0)

嗯,您可以通过在每个RepeaterItem中按ID查找所有RadioButton来检索它们。

<asp:RadioButton ID="rb"
    Text='<%# Eval("NetworkDescription") %>'
    data-mac='<%# Eval("MAC") %>'
    Checked="False"
    GroupName="RadioGroupNetworkCameras"
    runat="server" />
foreach (RepeaterItem ri in rptOtherNetworks.Items)
{
    if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem)
    {
        RadioButton r = (RadioButton)ri.FindControl("rb");
    }
}

但是你要遇到的问题是在Repeater中,单选按钮will not be mutually exclusive。通过JavaScript和其他方法有"fixing"这种方法,但请注意这一点。