1

我有一个网页,其中包含一个用户控件。我在 aspx 页面上有一个属性,该属性在 pageinit 方法中设置,我需要在 ascx 页面上设置该属性。我怎么才能得到它?

4

3 回答 3

1
MyAdminPage myPageInstance = this.Parent as MyAdminPage;
if(myPageInstance != null)
{
...
}

对此有几个问题。

从 .ascx 引用 .aspx 属性

于 2012-05-18T18:01:33.137 回答
1

在 ascx 中创建一个公共属性,并在您在 aspx 页面中设置的同时进行设置。

只是让您知道,PreInit 是EventHandler而不是方法。

于 2012-05-18T18:02:41.537 回答
0

最简单的选项如下:

  1. 使用公共变量并从父页面访问它。
  2. 将变量分配给 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 回答