DataList中的RadioButtonList

时间:2012-10-10 07:38:22

标签: c# asp.net

我在datalist中有一个radiobuttonlist控件

<asp:DataList ID="dlfilteritem" runat="server" RepeatDirection="Horizontal"
    RepeatColumns="3">
    <ItemTemplate>
        <asp:RadioButtonList ID="rblfilteritem" runat="server">
        </asp:RadioButtonList>
    </ItemTemplate>
</asp:DataList>

如何在使用findcontrol的事件中捕获对radiobutton的控制?

3 个答案:

答案 0 :(得分:2)

您始终可以使用NamingContainer属性来获取DataListItem。然后,您可以使用FindControl获取对RadioButtonList

的引用

例如,假设DataList中的另一个控件像DropDownList一样发回。如果您想在RadioButtonList事件处理程序中找到SelectedIndexChanged

protected void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList) sender;
    DataListItem dli = (DataListItem) ddl.NamingContainer;
    RadioButtonList rblfilteritem = (RadioButtonList)dli.FindControl("rblfilteritem");
}

如果DropDownList位于DataList之外,您可以通过Items property枚举所有DataListItems

foreach(DataListItem dli in DataList1.Items)
{
     RadioButtonList rblfilteritem = (RadioButtonList)dli.FindControl("rblfilteritem");
}

答案 1 :(得分:1)

如果您在datalist之外有下拉列表,那么您将拥有radiobuttonlist的所有值的数组,因此请尝试以下代码

foreach(DataListItem data in dtdatalist1.Items)
{
RadioButtonList rbl = (RadioButtonList)data.FindControl("rbl");
}

答案 2 :(得分:0)

protected void dlfilteritem_ItemDataBound(object sender, DataListItemEventArgs e) {
        if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
        {            
            RadioButtonList RBL = ((RadioButtonList)e.Item.FindControl("PopularCity"));
            RBL.DataSource = dataTable; 
            RBL.DataBind();
        }
    }