国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

(論壇答疑點滴)用戶控件動態加載PostBack后的問題

2024-07-21 02:15:51
字體:
來源:轉載
供稿:網友

很多網友在按鈕的click事件中動態添加用戶控件在頁面回傳后消失了或者就是用戶控件中的按鈕事件不能觸發,下面是解決辦法:
(1)
首先添加一個用戶控件:webusercontrol1.ascx
添加一個按鈕:public system.web.ui.webcontrols.button ucb;text為"用戶控件的按鈕"(等會要在page中用到這個按鈕,所以設置為public)
<asp:button id="ucb" text="用戶控件的按鈕" runat="server"></asp:button>
為按鈕的click事件添加代碼:
response.write(i.tostring());
i++;
在類中申明static int i=0;
這樣通過點擊按鈕可以看到點擊一次,計數增加1
(2)
添加一個頁面
放置一個placeholder,兩個按鈕
<asp:placeholder id="placeholder1" runat="server"></asp:placeholder>
<asp:button id="button1" runat="server" text="加載用戶控件"></asp:button>
<asp:button id="button2" runat="server" text="獲取用戶控件中的值"></asp:button>
添加一個加載用戶控件的操作:
private void adduc()
  {
   webusercontrol1 uc=(webusercontrol1)page.loadcontrol("webusercontrol1.ascx");
   uc.id="uc";
   this.placeholder1.controls.add(uc);
  }
為第一個按鈕增加click事件:
 private void button1_click(object sender, system.eventargs e)
  {
   if(viewstate["adduc"]==null)
   {
    adduc();
    viewstate["adduc"]=1;
   }
  }
我們在視圖狀態中增加一個標志位,表示是否點擊了按鈕來加載用戶控件,當然如果已經加載了再點擊按鈕就不需要重復加載了。
關鍵的是需要在page.ispostback的時候也要加載用戶控件
(因為如果不這么做的話,回傳的時候用戶控件就消失了)
if(page.ispostback)
   {
    if(viewstate["adduc"]!=null)
    {
     adduc();
    }
   }
下面可以點擊button1試驗一下,是不是加載了用戶控件?同時再點擊用戶控件中的按鈕也能很好的觸發其事件。
再為button2添加click事件,用來讀取用戶控件中btn這個按鈕的標題,動態加載的用戶控件和設計時加載的用戶控件一樣也能很好的和頁面進行交互:
private void button2_click(object sender, system.eventargs e)
  {
   if(viewstate["adduc"]!=null)
   {
    response.write(((webusercontrol1)page.findcontrol("uc")).ucb.text);
   }   
  }
這里注意到在加載用戶控件的時候我們為之指定了id,能夠方便的通過findcontrol來找到
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 如东县| 长白| 普兰店市| 乌拉特后旗| 荣昌县| 佛坪县| 若羌县| 兴义市| 侯马市| 绥滨县| 万盛区| 高陵县| 江城| 皮山县| 台东县| 昌图县| 乌苏市| 香港| 宽甸| 屏山县| 沐川县| 隆昌县| 宁城县| 三穗县| 治多县| 鹤山市| 稻城县| 文登市| 遵义市| 鲁山县| 梁山县| 汉源县| 龙门县| 温宿县| 昭觉县| 霍城县| 哈尔滨市| 莱州市| 攀枝花市| 北宁市| 泾源县|