【问题标题】:Access child user control's property in parent user control在父用户控件中访问子用户控件的属性
【发布时间】:2011-01-16 12:02:16
【问题描述】:

我在另一个静态代码中包含了一个用户控件:


将以下指令放在父页面的 asp 代码中或 用户控制:

<%@ Register src="Name_of_your_child_control.ascx" tagname="Name_of_your_child_control" tagprefix="uc1" %>

在父页面/控件的asp-code中使用以下标签:

<uc1:Name_of_your_child_control ID="Name_of_your_child_control1" runat="server" />

..... 但问题是...我无法访问包含在给定用户控件(父用户控件)中的用户控件的公共属性(子用户控件)...

请帮忙:(

【问题讨论】:

    标签: asp.net user-controls properties public


    【解决方案1】:

    使用

    Name_of_your_child_control1.PublicPropertyName
    

    必须适用于您的父用户控件。

    【讨论】:

      【解决方案2】:

      假设你的用户控件是这样的:

      <%@ Control Inherits="Project.MyControl" Codebehind="MyControl.ascx.cs" %>
      <asp:TextBox ID="TB" runat="server" />
      

      您的控制代码隐藏:

      namespace Project 
      {
        public partial class MyControl : UserControl
        {
          public string MyTextProperty
          {
            get { return TB.Text; }
            set { TB.Text = value; }
          }
        }
      }
      

      在包含控件的父页面中,如下所示:

      <%@ Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>
      <uc1:MyControl ID="MyControlID" runat="server" />
      

      您可以在代码中使用该属性:

      MyControlID.MyTextProperty = "bob";
      

      【讨论】:

      • 但是......对我来说它即将到来,因为我无法访问该属性:(
      • @Anish - 如果你引用它就好像它在那里并编译,你会得到什么错误?
      • 你的父页面也是用户控件吗?父页面 { uc1 { uc2 { } } }
      • @Anish - 您想从父控件的代码隐藏,还是从包含父控件的页面的代码隐藏访问属性?
      • 我有 2 个用户控件:uc1 和 uc2 还有一个父页面 p1。我在 p1 中包含了 uc1。现在我需要在 uc1 中包含 uc2 ...并在 uc1 中访问 uc2 属性
      【解决方案3】:

      检查您正在使用的路径和文件名,Anish。你有问题。 Visual Studio 是否告诉您它找不到控件?它在编译时失败了吗?运行时?

      【讨论】:

        【解决方案4】:

        这很有趣,但是每当您向用户控件添加属性时。

        您需要在父项中重新注册。所以在你的情况下,

        在此行末尾添加一个空格并再次将其删除: $&lt;% Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %&gt;

        这将重新注册用户控件,您将能够访问新属性。

        【讨论】:

          猜你喜欢
          • 2012-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-18
          • 2015-12-11
          • 1970-01-01
          • 2017-05-17
          相关资源
          最近更新 更多