這兩天寫一個小東西,用到了EasyUI框架,這個東西還是相當不錯的,省去了很多不必要的麻煩。不過因爲功能豐富所以也就造成了自己寫的代碼反而不能很好的接洽。例如題目中說到的RegisterStartupScript之後的js代碼在EasyUI框架下代碼執行兩次的問題。
因爲第一次用所以當時也不明所以,當時是要在一個按鈕執行後彈出一個提示,就用了Page.ClientScript.RegisterStartupScript註冊一段js代碼到頁面,但是這個時候詭異的事情就發生了居然彈出兩個框
跟蹤代碼,一切okay沒有二次執行,那就是頁面的問題。
於是先把代碼註釋,在頁面jQuery初始化實事件中加了一個提示,打開頁面。結果只提示一次,這個時候就很容易說明了,是body中出了問題,因爲通過 RegisterStartupScript註冊的代碼是註冊到body中的,也就是說body被處理了兩次,最後發現是body中class的問題,<body class="easyui-layout" > 這個class重新處理了body。有了這那就很容易解決了:
在js文件中定義瞭如下方法
- var _successAlert;
- function SuccessAlert() {
- if (_successAlert!= "yes") {
- $.messager.alert('提交成功', '更新成功', 'info');
- _successAlert= "yes";
- }
- }
很簡單 在cs的代碼:
- Page.ClientScript.RegisterStartupScript(this.GetType(), "SuccessAlert", "<script> SuccessAlert();</script>", false);
調用js方法,執行okay!