2

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


将以下指令放在父页面或用户控件的 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" />

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

请帮忙 :(

4

4 回答 4

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";
于 2010-02-13T14:41:09.637 回答
0

使用

Name_of_your_child_control1.PublicPropertyName

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

于 2010-02-13T14:30:43.320 回答
0

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

于 2010-02-13T22:34:50.777 回答
0

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

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

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

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

于 2016-02-11T14:11:22.943 回答