国产探花免费观看_亚洲丰满少妇自慰呻吟_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來找到
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临邑县| 威信县| 鹰潭市| 林甸县| 旌德县| 葫芦岛市| 仙居县| 皋兰县| 曲靖市| 富宁县| 焉耆| 丹寨县| 长垣县| 阿图什市| 成安县| 涿州市| 土默特右旗| 裕民县| 勐海县| 利辛县| 英吉沙县| 思茅市| 兴国县| 岚皋县| 华亭县| 岳阳市| 绥滨县| 拉孜县| 庆阳市| 崇信县| 丹凤县| 西乌珠穆沁旗| 杂多县| 永顺县| 托里县| 齐河县| 阜新市| 台北县| 安平县| 将乐县| 潜山县|