我已将用户控件包含在另一个静态代码中:
将folowing指令放在父页面的asp代码中 用户控件:
<%@ Register src="Name_of_your_child_control.ascx"
tagname="Name_of_your_child_control" tagprefix="uc1" %>
在父页面/控件的asp代码中使用以下标记:
<uc1:Name_of_your_child_control ID="Name_of_your_child_control1"
runat="server" />
..... 但问题是......我无法访问在给定用户控件(父用户控件)中包含(用户控件)的用户控件的公共属性...
请帮助:(
答案 0 :(得分:5)
说你的用户控制是这样的:
<%@ 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";
答案 1 :(得分:0)
使用
Name_of_your_child_control1.PublicPropertyName
必须适用于您的父用户控件。
答案 2 :(得分:0)
检查您正在使用的路径和文件名,Anish。你有什么不对劲。 Visual Studio是否告诉您无法找到控件?它在编译时失败了吗?运行
答案 3 :(得分:0)
这很有趣,但无论何时向用户控件添加属性。
您需要在父级中重新注册。所以在你的情况下,
在此行的末尾添加一个空格并再次将其删除:
$<% Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>
这将重新注册用户控件,您将能够访问新属性。