HTML
<asp:Manager ID="Manager1" runat="server">
</asp:Manager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" ="Button1_Click" Text="Button" /><br />
</ContentTemplate>
</asp:UpdatePanel>
----------------------------------------------
在ASP.NET頁面上添加AJAX控件后,不能調(diào)出窗口的解決辦法:
ASP.NET2.0中AJAX使用新的Manager 類來管理,而不兼容原來的 ClientManager 類 ,所以用<>alert(‘提示:產(chǎn)品添加成功!‘)</>和
this.Client.RegisterClientBlock(this.GetType(), "name", "<>alert(‘提示:產(chǎn)品添加成功!‘);</>", true);
Page.Client.RegisterClientBlock(this.GetType(), "name", "<>alert(‘提示:產(chǎn)品添加成功‘);</>", true);
這些方法都是無效的.
可以用以下方法寫代碼實現(xiàn)
Manager.RegisterStartup(UpdatePanel1, UpdatePanel1.GetType(), "", "alert(‘提示:產(chǎn)品添加成功!‘);if(confirm(‘是否繼續(xù)添加?取消轉(zhuǎn)到產(chǎn)品管理頁‘)){alert(‘本頁面繼續(xù)添加‘)}else{open(‘productManage.aspx‘,‘_self‘);}", true);
我把上面的簡化了下,實現(xiàn)最簡單的提示問題
就寫在button的單擊事件下
Manager.RegisterStartup(UpdatePanel1,UpdatePanel1.GetType(),"","alert(‘成功‘)",true);
或?qū)懺趆tml語言上面,以下面這種形式書寫:
<script runat=server>
string str = "abc";
ScriptManager.RegisterStartup(this.UpdatePanel1,this.GetType(),"Click","alert(‘" + str + "‘)",true)
</string>
下面介紹一下ScripteManager.RegisterStartupScript參數(shù):
在AJAX支持的網(wǎng)站中使用想使用Response.Wrie(“”); 或 Page. RegisterStartupScript (); 彈出一些提示對話框,沒有效果。有如下兩種解決方法:
(1) System.Web.UI.ScriptManager.RegisterStartupScript來替代Page.ClientScript.RegisterStartupScript
函數(shù)原型:System.Web.UI.ScriptManager.RegisterStartupScript(Contrl control, Type type,string key,string script, bool addScriptTags);
參數(shù):
control-----------------要要注冊此段javascript語句的控件ID,如下面示例的按鈕ID btnUnReport
type--------------------這個參數(shù)是注冊腳本塊控件的類型,即updatepanel的類型。一般直接用this.GetType()即可
key---------------------為要執(zhí)行的javascirpt語句起的名字,可以隨便起,類似控件的name屬性
script------------------javascript語句
addScriptTags------為true時,前邊的script參數(shù)可以不用再寫javascript標簽;為false,則需自己為script參數(shù)添加<script language=’javascript’></script>標簽。
注:要多傳一個Control參數(shù),如果這個control在UpdatePanel里,則運行腳步,如果這個control不在UpdatePanel則不允許這段腳步。