1

这可能吗,我有一些 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,属性?

这可能没有铸造?

4

3 回答 3

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;

您需要检查控件的类名。

于 2010-12-09T16:25:23.847 回答
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; }
    }
于 2011-11-09T15:24:24.790 回答
0

将其转换为您的特定控件类型,而不是(UserControl). 这样,您可以在将用户控件添加到页面之前设置其属性。

于 2010-12-09T16:11:57.180 回答