天天看點

Js控制ASPX頁面重新整理的土辦法

這樣如果在用戶端通過調用 javascript 進行頁面重新整理,知道在 aspx 頁面裡激發一個事件都需要把頁面 Post 伺服器。 IE 就會彈出提示框問是否重新送出,但是本意隻是想重新整理資料顯示。怎麼辦呢,想的方法就是模拟控件激發事件的動作,讓 .net 誤認為是改變了控件的狀态或點選了重新整理按鈕,讓頁面 Post 達到重新整理資料的作用。

設定此控件的 ID 這裡為了改變狀态友善拖入的 checkbox 然後在此控件的代碼裡加上【 style="DISPLA Y: none" 這個屬性意在隐藏此控件,       首先拖入一個伺服器控件到 aspx 頁面。但不能用【 Visible=fals 這樣控件就不會加載到用戶端了控件的代碼如此形式: <asp:checkbox id="chkReload" style="DISPLA Y:none" runat="server" AutoPostBack="True"></asp:checkbox>

       添加用戶端 js 代碼: CS 頁面加入處置此控件的事件代碼:這樣隻要用戶端調用 js reload 方法就可以重新整理頁面了跟我點選重新整理按鈕的效果一緻。沒有深入研究不知道有沒有更好的方法。

<script language="javascript">

funct reload {

document.Form1.chkReload.check = !document.Form1.chkReload.checked;

'' ;  __doPostBack 'chkReload'.

}

System.EventA rg e </script>priv void chkReload_CheckedChang object sender.

{

            Bind ;

}

如果頁面上沒有需要實作 autopostback 控件,确實不是所有 aspx 檔案解析到用戶端後都會添加 __doPostBack 函數。就不會添加 __doPostBack 函數。

并且實作了自定義分頁;每一行有一個 “ 編輯 ” 按鈕用來彈出一個模态視窗讓使用者編輯該行資料,俺補充一下:如果在首頁面中有一個 DataGrid 用來顯示表格狀資料。如果在編輯完成後,主視窗調用 window.location.reload 或者類似的重新整理操作,則主視窗的 onload 事件會被調用,這時問題呈現了 DataGrid 頁碼會被回複到第一頁,即以前的 ViewStat 不會被儲存下來。這時使用樓主說的方法來代替 window.location.reload 就可以達到 DataGrid 頁碼仍然保留在原來頁數的效果了   

繼續閱讀