访问父用户控件中子用户控件的属性

发布于 2024-08-22 04:24:26 字数 450 浏览 9 评论 0原文

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


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

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

在父页面/控件的 asp 代码中使用以下标记:

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

请帮助:(

I have included a user control in another statically following code :


place the folowing directive in the asp code of the parent page or
usercontrol:

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

use the following tag in the asp-code of the parent page/control:

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

.....
But the issue is...i am not able to access the public properties of user control which got included(child user control) in given user control(parent user control)...

Please help :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

雨轻弹 2024-08-29 04:24:26

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

<%@ 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";

Say your usercontrol was this:

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

Your control code-behind:

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

In your parent page that included the control, like this:

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

You can use that property in code:

MyControlID.MyTextProperty = "bob";
你的呼吸 2024-08-29 04:24:26

使用

Name_of_your_child_control1.PublicPropertyName

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

Using

Name_of_your_child_control1.PublicPropertyName

must work for your parent user control.

瞄了个咪的 2024-08-29 04:24:26

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

Check the path and file names you are using, Anish. You have something wrong. Is Visual Studio telling you it can't find the control? Is it failing at compile time? Runtime?

姜生凉生 2024-08-29 04:24:26

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

您需要在父级中再次注册它。因此,在您的情况下,

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

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

It's funny but whenever you add a property to a user control.

You need to register it again in the parent. So in your case,

Add a space at the end of this line and remove it again:
$<% Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>

This will re - register the user control and you will be able to access new properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文