这是否可行,我有一些C#代码将web用户控件添加到aspx页面,见下文:
UserControl myUserControl;
myUserControl = (UserControl)LoadControl("../TempLayouts/LayoutSize.ascx");
PlaceHolder1.Controls.Add(myUserControl);
在我的ascx上,我有以下代码:
private int Edit_Mode = 0;
public int Get_EditMode
{
get { return Edit_Mode; }
set { Edit_Mode = value; }
}
protected void Page_Load(object sender, EventArgs e)
{ if(Edit_Mode == 1)//do something}
如何在上面的代码中调用Web用户控件时将Edit_Mode值设置为1,属性?
这可能没有铸造吗?
答案 0 :(得分:2)
您需要在aspx文件中添加类引用,如下所示:
<%@ Reference Control="../TempLayouts/LayoutSize.ascx" %>
然后,在你的aspx.cs文件中添加如下内容:
ASP.LayoutSize_ascx myUserControl;
myUserControl = (ASP.LayoutSize_ascx)LoadControl("../TempLayouts/LayoutSize.ascx");
myUserControl.Edit_Mode = 1;
您需要检查控件的类名。
答案 1 :(得分:1)
//.aspx
Control c = Page.LoadControl("LayoutSize.ascx");
c.GetType().GetProperty("Get_Editor_Mode").SetValue(c, True, null);
//.ascx
private bool Editor_Mode = false;
public bool Get_Editor_Mode
{
get { return Editor_Mode; }
set { Editor_Mode = value; }
}
答案 2 :(得分:0)
将其投射到您的特定控件类型而不是(UserControl)
。这样,您可以在将用户控件添加到页面之前设置其属性。