从子用户控件访问父用户控件中的对象

时间:2013-08-27 17:53:37

标签: c# asp.net

所以我有一个用户控件,Parent.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Parent.ascx.cs" 
    Inherits="Parent" %>
<%@ Register TagPrefix="cc" TagName="Child" Src="~/Child.ascx" %>

<asp:HiddenField ID="hfId" runat="server" />

<cc:Child ID="child1" runat="server" />

我的孩子控制Child.ascx包含一个按钮,在代码隐藏中,我想在该按钮的点击事件中访问隐藏字段hfId的值

我无法使用用户控件属性并在Page_Load上设置它,因为该隐藏字段的值正在通过Parent.ascx控件中的jQuery事件进行更改

2 个答案:

答案 0 :(得分:3)

使用以下代码访问子控件中的隐藏字段。 this.Parent会给父母控制权&amp;使用FindControl按ID查找控件。

HiddenField hfID = this.Parent.FindControl("hfId") as HiddenField;
string hiddenvalue = hfID.Value;

如果您在页面加载时更改隐藏字段的值,则在按钮单击时,将反映更新的值。

答案 1 :(得分:1)

您可以使用以下方式访问孩子的控件:

var hfId = (HiddenField)NamingContainer.FindControl("hfId");