簡體   English   中英

動態加載用戶控件的問題

[英]Issues with Dynamically Loading a User Control

我正在頁面上動態加載用戶控件,效果很好。 但是我面臨一個問題:

  • 我在用戶控制代碼的后面有一個類級變量,並且該變量的值在用戶控制頁面加載中分配。 現在,當我單擊其中包含用戶控件的aspx頁面上的按鈕並嘗試從中調用用戶控件功能時,我看到我在用戶控件頁面加載中設置的變量的值已重置。

如果我在設計時具有用戶控制權,則相同的代碼可以完美地工作。

代碼是這樣的:

頁:

    MyUserControl cntrl = Page.LoadControl("~/MyUserControl.ascx")
    btn_click(){
    {
      cntrl.TestFunction();
    }

用戶控制:

    class MyUserControl: UserControl
    {
       //Variable
       string org="";
       Page_Load()
       {
          org="test";
       }

       TestFunction()
       {
          //The value of org variable is empty here.
          //It should however be "test" which i have set in page_load
       }
   }

“代碼是這樣的:”-提供代碼(甚至是片段)時,請嘗試使其符合語言語法-在這種情況下為C#。

為了觸發MyUserControl.Page_Load ,您必須將用戶控件添加到頁面的控件樹中:

MyUserControl cntrl = (MyUserControl)Page.LoadControl("~/MyUserControl.ascx");
Panel1.Controls.Add(cntrl);

Page_Load方法必須具有非常特定的簽名和范圍:

class MyUserControl: UserControl
{
  string org="";

  protected void Page_Load(object sender, EventArgs e)
  {
    org="test";
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM