程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> .ASP.NET頁面跳轉提示保存(原創)

.ASP.NET頁面跳轉提示保存(原創)

編輯:.NET實例教程
直接切入正題吧.

    要求:帶母版頁的ASP.Net頁面實現Microsofe Word一樣的提示保存效果:如果用戶更改了某些控件的值,在未保存狀態下進行其他操作,彈出對話框,提示是否保存,點擊是則自動保存.

   網上查到很多的前人的例子,感覺都不是特別貼切.總結前人的經驗,得出如下方案:

   在頁面上設置一個隱藏控件,用以記錄頁面是否修改的狀態,改變相應控件值時用JS改變該隱藏控件的值,在onunload事件中驗證該控件值,如果發生改變,彈出提示,如果選擇是,找到頁面的保存按鈕,執行其click事件,如果選擇不保存,直接跳過.這是大部分前人的做法,對於頁面的一切事件都適用,伴隨而來的問題是:並非所以的控件事件都需要觸發這個提示保存,比如保存按鈕,為了排除這類按鈕,引入另一個運行於客戶端的html隱藏控件,用以存放是否需要驗證,保存按鈕跳過驗證的方法就是在該按鈕的onclIEntclick事件中改變該html控件值,設為不需要驗證,之所以引用運行於客戶端的html控件是有實質道理的,客戶端Html控件在每次頁面回發之後能夠自動恢復到初始值,這解決了回發驗證數據不通過,頁面應該仍然處於待保存狀態的問題.余下的就不用多說了,在保存之後把頁面表征是否修改的控制值歸位.

   事前准備:如果網站用了母版頁,且每個頁面都要實現這樣的功能,建議把每個頁面的保存按鈕的ID設為相近的甚至相同的值,主要為了提示保存時點擊是之後能夠找到改保存按鈕.

   第一步,在母版頁設置兩個隱藏的textbox.

  <input type="text" id="master_remind_tb" value="1"/>
  <input type="text" id="master_remind_attach" value="" runat="server"/>

  保存按鈕<ASP:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" />

 

   第二步,改變頁面控件值時改變隱藏按鈕值   

    <script language="Javascript">

   function changeRemindValue()
            {
                var txtList = document.getElementsByTagName("input");// 返回表內嵌的所有 text 控件
                for(var j = 0; j < txtList.length; j++)
                {
                    if(txtList[j].id.indexOf("master_remind_attach") > -1) 
                    { 
              

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved