通过Unsave Change显示通过一个页面移动到另一个页面的警报

时间:2011-05-12 04:40:57

标签: c# asp.net prompt

情景:

我有一个CaseEdit.aspx页面,其中有3个按钮:

  • AddImage
  • FinalPage
  • QuestionAns

并且一个Web用户控制CaseContentList.ascx。

在casecontentlist中我有datalist,因为我是lbtnDisplay。

当我们点击caseEdit.aspx btn时,我们将名称添加到lbtnDisplay(假设我点击了btn addimage,然后addimage将添加到dataliast,如果点击btnqusans,则qusans将添加该datalist lbtn)。

现在,在每次点击btn时,我都会打开以下网络用户控件:

  • 在AddImage上单击我打开AddImage.ascx(使用tinymce编辑器)

  • 在FinalPage上点击我打开FinalPage.ascx(使用tinymce编辑器)

  • 关于QuestionAns的
  • 点击我打开QuestionAns.ascx(使用tinymce编辑器)

  • 当我点击任何项目上的datalist链接btn(lbtnDisplay)时,PageContent.ascx正在打开。

所有这些都发生在caseEdit.aspx页面上。

要求:

  1. 当我们处于任何页面的编辑模式并移动到其他页面时,它必须显示确认提示框。

  2. 在lbtnDisplay点击打开页面内容后,我们将转到其他页面,不应显示确认提示框。

2 个答案:

答案 0 :(得分:0)

您可以在将用户重定向到页面之前添加您检查的其他变量:

var allowRedirect = false;

function FinalFunction() 
{ 
    if (!allowRedirect)
    {
        return confirm("Are you sure you have saved your changes?"); 
    }
} 

默认情况下allowRedirect设置为false,因此所有trise更改页面都会显示确认框。

然后,当用户点击allowRedirect按钮时,您可以将lbtnDisplay设置为true:

document.getElementById.onlick = function(){ allowRedirect = true; };

没有测试我的代码,但它为您提供了如何完成它的概念。

答案 1 :(得分:0)

我已经取了一个隐藏字段并保持值= 0,当我点击编辑按钮将值更改为1之后我将比较文本框和隐藏字段的值当用户点击其他链接时工作得很好..

function ValueChanged() {
     var textvalue;

     textvalue = removeHTMLTags(tinyMCE.get('<%=txbText.ClientID %>').getContent());
     if (textvalue != tinyText) {
         var ssave = window.confirm('Your changes are not saved. Do you want to save your changes before you exit.')
         if (ssave == true) {
             document.getElementById('<%=btnSave.ClientID%>').click();
             return false;
         }
         else
             return true;
         }
     }