[英]web user control value set in aspx page
這可能嗎,我有一些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?
這有可能不用鑄造嗎?
您需要在aspx文件中添加一個類引用,如下所示:
<%@ Reference Control="../TempLayouts/LayoutSize.ascx" %>
然后,在aspx.cs文件中添加以下內容:
ASP.LayoutSize_ascx myUserControl;
myUserControl = (ASP.LayoutSize_ascx)LoadControl("../TempLayouts/LayoutSize.ascx");
myUserControl.Edit_Mode = 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; }
}
將其強制轉換為您的特定控件類型,而不是(UserControl)
。 這樣,您可以在將用戶控件添加到頁面之前設置其屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.