Ajax ToolKit — ModelPopupExtender應用經驗二則

來源:互聯網
上載者:User
目錄:
    有關於ModelPopupExtender應用(Open ModalPopup dialog on Page load )
    有關於ModelPopupExtender如何觸發服務端事件

1.有關於ModelPopupExtender應用

<form id="Form1" runat="server">
        <ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
        <div>
            <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="mdlPopup" runat="server"
                TargetControlID="btnNo" PopupControlID="pnlPopup" OkControlID="btnYes" BackgroundCssClass="modalBackground" />
            <asp:Panel ID="pnlPopup" runat="server" CssClass="confirm-dialog" Style="display: none;">
                <div class="inner">
                    <h2>
                        Show Wow!</h2>
                    <div class="base">
                        <asp:Button ID="btnYes" runat="server" Text="Yes" />
                        <asp:Button ID="btnNo" runat="server" Text="No" OnClientClick="$find('mdlPopup').hide(); return false;" />
                        <asp:LinkButton ID="LinkButton1" runat="server" CssClass="close" OnClientClick="$find('mdlPopup').hide(); return false;" />
                    </div>
                </div>
            </asp:Panel>
        </div>
    </form>

    <script type="text/javascript">  
//Page_Load Invoke          
           Sys.Application.add_load(function() 
            { 
               $find('mdlPopup').show();
            });
    </script>



相關問題地址:
關於使用ajaxToolkit

2. 有關於ModelPopupExtender如何觸發服務端事件
    觸發服務端事件,大家一看就知道,很簡單,直接寫事件即可,那為什麼在這裡又要寫這個呢?那個因為我在用AJAX,開發時,發現只要ModelPopupExtender中TargetControlID關聯“修改”按鈕的Id,之後。然後在運行介面時,點擊“修改”按鈕是不會觸發Button的OnClick事件的。
    

 <asp:Button ID="btnFixTheme" runat="server" Text="修改" OnClick="btnFixTheme_Click" />
 <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="mdlPopup" runat="server" TargetControlID="btnFixTheme"  PopupControlID="pnlPopup" Drag="true" BackgroundCssClass="modalBackground" />

     為什麼會這樣呢?
     答:那是因為ajax server control render一個有非同步通訊功能的代碼,並沒有在觸發這個事件的按鈕更改任何的代碼,還是原來的__doPostBack('','')回傳方式。ajax core part 會託管這個__doPostBack。而對於ajax control toolkit,則是在初始化whole client page時執行一段代碼然後動態給綁定的控制項加入觸發的代碼。所以你也看不到例如一個LinkButton觸發事件的變化。

   解決代碼:

 protected void Page_Load(object sender, EventArgs e)
        {
            btnFixTheme.OnClientClick = "__doPostBack('" + this.btnFixTheme.UniqueID + "','')";
}

另外:附一點
   如何動態添加trigger到updatePanel?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.