小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

用戶控件動態(tài)加載PostBack后的問題

 昵稱10504424 2013-02-18
很多網(wǎng)友在按鈕的click事件中動態(tài)添加用戶控件在頁面回傳后消失了或者就是用戶控件中的按鈕事件不能觸發(fā),下面是解決辦法:
(1)
首先添加一個用戶控件:webusercontrol1.ascx
添加一個按鈕:public system.web.ui.webcontrols.button ucb;text為"用戶控件的按鈕"(等會要在page中用到這個按鈕,所以設(shè)置為public)
<asp:button id="ucb" text="用戶控件的按鈕" runat="server"></asp:button>
為按鈕的click事件添加代碼:
response.write(i.tostring());
i++;
在類中申明static int i=0;
這樣通過點擊按鈕可以看到點擊一次,計數(shù)增加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;
   }
  }
我們在視圖狀態(tài)中增加一個標(biāo)志位,表示是否點擊了按鈕來加載用戶控件,當(dāng)然如果已經(jīng)加載了再點擊按鈕就不需要重復(fù)加載了。
關(guān)鍵的是需要在page.ispostback的時候也要加載用戶控件
(因為如果不這么做的話,回傳的時候用戶控件就消失了)
if(page.ispostback)
   {
    if(viewstate["adduc"]!=null)
    {
     adduc();
    }
   }
下面可以點擊button1試驗一下,是不是加載了用戶控件?同時再點擊用戶控件中的按鈕也能很好的觸發(fā)其事件。
再為button2添加click事件,用來讀取用戶控件中btn這個按鈕的標(biāo)題,動態(tài)加載的用戶控件和設(shè)計時加載的用戶控件一樣也能很好的和頁面進(jìn)行交互:
private void button2_click(object sender, system.eventargs e)
  {
   if(viewstate["adduc"]!=null)
   {
    response.write(((webusercontrol1)page.findcontrol("uc")).ucb.text);
   }   
  }
這里注意到在加載用戶控件的時候我們?yōu)橹付薸d,能夠方便的通過findcontrol來找到

文章整理:西部數(shù)碼

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多