我有一个网页,其中包含一个用户控件。我在 aspx 页面上有一个属性,该属性在 pageinit 方法中设置,我需要在 ascx 页面上设置该属性。我怎么才能得到它?
问问题
4243 次
3 回答
1
MyAdminPage myPageInstance = this.Parent as MyAdminPage;
if(myPageInstance != null)
{
...
}
对此有几个问题。
于 2012-05-18T18:01:33.137 回答
1
在 ascx 中创建一个公共属性,并在您在 aspx 页面中设置的同时进行设置。
只是让您知道,PreInit 是EventHandler而不是方法。
于 2012-05-18T18:02:41.537 回答
0
最简单的选项如下:
- 使用公共变量并从父页面访问它。
- 将变量分配给 ascx 前端的隐藏字段。像这样的字段:
<asp:HiddenField ID="ascxField" runat="server" />
.
下面的示例适用于#1,但#2 几乎相同。
示例 #1:
页面:
前端:
<%@ Register TagPrefix="Admin" TagName="MyUserControl" Src="~/UserControls/.../MyUserControl" %>
...
<Admin:MyUserControl ID="MyUserControl" AutoPostBack="true" runat="server" Visible ="false" />
代码背后:
this.MyUserControl.Variable1 = 1;
this.MyUserControl.Variable2= "value";
Ascx 页面:
代码背后
public int Variable1 { get; set; }
public string Variable2 { get; set; }
于 2018-06-13T15:33:14.753 回答