【问题标题】:Access all RadioButton from a Repeater从中继器访问所有 RadioButton
【发布时间】:2014-10-20 05:12:12
【问题描述】:

我有一个 RepeaterRadioButton。有没有一种简单的方法可以从 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>

【问题讨论】:

  • 关于您想要访问单选按钮的方法...例如在 rowbound 事件、page_load 事件等上
  • @Ganesh_Devlekar 这是同一个 ASPX 文件上按钮的OnClick 事件。
  • 那个按钮在Repeater外面??
  • @Ganesh_Devlekar 是的。
  • 那么你可以参考j.f.给出的答案。您可以使用 for each loop for each loop for repeater items 遍历所有 RadioButton

标签: c# asp.net


【解决方案1】:

好吧,您可以通过在每个 RepeaterItems 中按 ID 查找所有 RadioButtons 来检索它们。

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

但是您将遇到的一个问题是在中继器中,单选按钮will not be mutually exclusive"fixing" this 通过 JavaScript 和其他方法有多种方式,但请注意这一点。

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2018-04-21
    相关资源
    最近更新 更多