【问题标题】:find parent repeater from child repeater's dropdownlist selectedindexchange从子中继器的下拉列表中找到父中继器 selectedindexchange
【发布时间】:2014-01-24 17:49:15
【问题描述】:

我想找到父中继器,其中包含子中继器和子中继器包含下拉列表。在 Drowdownlist 的 SelectedIndexChange 上,我想找出父中继器。找到父中继器后,我想在父中继器中找到隐藏字段值。即

父Repeater包含HiddenField和子Repeater 子中继器在此下拉选择的索引更改事件上包含下拉列表我想找到父中继器中的 HiddenField 值。

我的代码:

        DropDownList myGeneralButton = (DropDownList)sender;
        Repeater item = (Repeater)myGeneralButton.Parent.Parent;

        for (int i = 0; i < item.Items.Count; ++i) 
        {
            HiddenField hdn=  item.Items[i].FindControl("Hdhotelname") as HiddenField;
            string h = hdn.Value;
        }

在这个隐藏字段中,我获取了所有值,但我想要选择下拉列表的那个特定索引的值。

谢谢

【问题讨论】:

    标签: asp.net repeater


    【解决方案1】:

    您必须搜索DropDownListNamingContainer。流程应该是这样的:

    (DropDownList)发件人
    --> NamingContainer(子RepeaterItem)
    --> NamingContainer(子中继器)
    --> NamingContainer(父RepeaterItem)
    --> FindControl"Hdhotelname" (Hdhotelname)

    你的代码应该是这样的:

    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        var ddl = (DropDownList)sender;
        var rptChild = ddl.NamingContainer.NamingContainer;//Child Repeater
        if (rptChild != null)
        {
            var rptParentItem = rptChild.NamingContainer;//Parent RepeaterItem
            var hdnfld = rptParentItem.FindControl("Hdhotelname") as HiddenField;
            if (hdnfld != null)
            {
                //Do your tasks
            }
        }
    }
    

    希望对你有帮助!

    【讨论】:

      【解决方案2】:
      <%= (Repeater)ChildRepeater.NamingContainer =>
      

      或直接在您的代码隐藏中使用它,而不使用 &lt;%==&gt;

      【讨论】:

      • 感谢您的回复。我做了: DropDownList myGeneralButton = (DropDownList)sender; RepeaterItem 项 = (RepeaterItem)myGeneralButton.Parent.Parent;我也想找出中继器中的隐藏字段,你能帮帮我吗
      • HiddenField 在父中继器中,我想找到那个值
      • (HiddenField)((RepeaterItem)NestedRepeater.Parent.Parent).FindControl("HiddenInputFieldIDInParent");
      • 如果您没有在 Item_DataBound 事件中执行此操作...那么您需要使用 for (int i = 0; i
      • 我在 ddl_SelectedIndexChanged 上执行此操作。错误:无法将“System.Web.UI.UpdatePanel”类型的对象转换为“System.Web.UI.WebControls.Repeater”。代码:DropDownList myGeneralButton = (DropDownList)sender;中继器项 = (Repeater)myGeneralButton.Parent.Parent; HiddenField hdn = (HiddenField)((Repeater)item.Parent.Parent).FindControl("Hdhotelname");
      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多