【问题标题】:ASP.NET Index of parent repeater item (in nested repeaters)父中继器项的 ASP.NET 索引(在嵌套中继器中)
【发布时间】:2020-06-09 07:59:38
【问题描述】:

我有一个嵌套中继器,即一个父中继器和一个子中继器。子中继器仅包含一个 DropDownList 控件。我在 DropDownList 控件上有 OnSelectedIndexChanged 设置。当下拉列表的选择发生变化时,我可以获得子中继器项目的索引。

我的问题是:如何获取更改下拉列表选择的父转发器的索引。

这里是示例代码:

<asp:Repeater runat="server" ID="ParentRepeater">
    <ItemTemplate>

        <asp:Repeater runat="server" ID="ChildRepeater">
            <ItemTemplate>
                <asp:DropDownList runat="server" ID="DropDownInChildRepeater" OnSelectedIndexChanged="DropDownInChildRepeater_OnSelectedIndexChanged" />
            </ItemTemplate>
        </asp:Repeater>

    </ItemTemplate>
</asp:Repeater>


protected void DropDownInChildRepeater_OnSelectedIndexChanged(object sender, EventArgs e)
{
    var dropDownInChildRepeater = (DropDownList)sender;
    var dropDownInChildRepeaterItem = (RepeaterItem)dropDownInChildRepeater.NamingContainer;

    var indexOfDropDownInChildRepaterItem = dropDownInChildRepeater.ItemIndex;

    //Question I need index of ParentRepeater in which sender resides
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您使用NaminContainer 走在正确的轨道上。你只需要上控制树。 DropDownList > RepeaterItem > Repeater > RepeaterItem。

    //dropdown in child repeater
    var dropDownInChildRepeater = (DropDownList)sender;
    
    //repeater item in child repeater
    var dropDownInChildRepeaterItem = (RepeaterItem)dropDownInChildRepeater.NamingContainer;
    
    //child repeater
    var childRepeater = (Repeater)dropDownInChildRepeaterItem.NamingContainer;
    
    //repeateritem of parent repeater
    var parentRepeaterItem = (RepeaterItem)childRepeater.NamingContainer;
    
    //the item index of the parent repeateritem
    var parentRepeaterItemIndex = parentRepeaterItem.ItemIndex;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      相关资源
      最近更新 更多