2010-12-09 62 views
1

这是可能的,我有一些C#代码,增加了web用户控件拖到aspx页面见下图:网络用户控制值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用户控件Attributes时将Edit_Mode值设置为1?

这可能没有铸造?

回答

0

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

+0

无法投出webcontrol,因为它可能是不同的webcontrol – Chris 2010-12-09 16:24:04

+0

“不同的webcontrol”也有Edit_Mode属性吗? – Marcie 2010-12-09 18:00:54

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
//.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; } 
    }