.net使用靜態刷新控件ScriptManager和UpdatePanel無法彈出窗口如何解決
如果在頁面里面用到了ScriptManager,里面再放個更新面板,那客戶端的彈出對話框就不起作用了。
例如:
Page.ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('添加信息成功!');</script>");
這句驗證就失去了作用。
那就要到以下的:
ScriptManager.RegisterStartupScript(this.btnOK,this.GetType(),"alert","alert('添加信息成功!');",true);
第一個參數:是哪個按鈕要使用的這個JS。
最后一個參數:使用了true,所以前面的js里面就不能添加</script>。添加就會出錯的。
UpdatePannel中彈窗這樣寫:
Stringcstext1=String.Format("alert('{0}');","查詢到1233條數據!");
ScriptManager.RegisterClientScriptBlock(UpdatePanel1,UpdatePanel1.GetType(),"message",cstext1,true);
在.NET WEB應用上彈出消息框,我試驗成功的有下面的幾種,若有其他方法,望您不吝賜教。
1.只彈出提示消息。
方法一:
string script = "<script> alert('刪除成功!') </script>"; Page.RegisterStartupScript("",script);
方法二:
Response.Write("<script>alert('刪除成功!')</script>");
方法三:
同下面的方法一。
2.需要用戶確定的彈出消息。
方法一:
添加引用System.Windows.Forms.dll
添加命名空間using System.Windows.Forms;(然后可能需要重新生成一下文件)
然后同Winform里的MessageBox一樣了(MessageBox.Show(參數1,......));
例: if (MessageBox.Show("你確定要刪除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes){} else{}
方法二:
在Page_load()或其他合適地方為按鈕添加新的屬性:
btnDeleteAdmin.Attributes.Add("onclick", "return confirm('你確認要刪除嗎?')");
經常遇到這樣的問題:便用Response.write()方法常常會導致頁面布局改變,原因是因為script腳本改變了布局的CSS樣式,可以使用客戶端注冊腳本,這樣會解決頁面變型的問題!
各種打開新頁面的方式總結
推薦使用方法
【1】Page.RegisterStartupScript("ServiceManHistoryButtonClick", "<script>window.open('" + url + "');</script>");
【2】 Page.RegisterStartupScript("", "<script>alert('投票成功,感謝您的參與!')</script>");
【0】最常用的打開方式
Response.Write("<script language='javascript'>window.open('"+ url+"');</script>");
【1】直接轉向新的頁面,原窗口被代替;
Response.Redirect("XXX.aspx",true)
【2】原窗口保留,另外新增一個新頁面;Response.Write("<script>window.open('XXX.aspx','_blank')</script>")
【3】打開新的頁面,原窗口被代替;
Response.Write("<script>window.location='XXX.aspx'</script>")
【4】打開新的頁面;
Server.Transfer("XXX.aspx")
說明,常用于傳遞session變量的頁面跳轉!
【5】原窗口保留,以對話框形式打開新窗口;
Response.Write("<script>window.showModelessDialog('XXX.aspx')</script>")
【6】對話框形式打開新窗口,原窗口被代替;
Response.Write("<script>window.showModelDialog('XXX.aspx')</script>")
【7】打開簡潔窗口Respose.Write("<scriptlanguage='Javascript'>window.open('"+url+"','','resizable=1,scrollbars=0,status=1,menubar=no,toolbar=no,location=no, menu=no');</script>");
新聞熱點
疑難解答