在aspx页面中设置的Web用户控件值

时间:2010-12-09 16:04:50

标签: c# .net ascx

这是否可行,我有一些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,属性?

这可能没有铸造吗?

3 个答案:

答案 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)。这样,您可以在将用户控件添加到页面之前设置其属性。