目錄:
有關於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?