更新数据库后如何发送警告消息并更新页面

时间:2013-03-08 20:08:17

标签: asp.net

我有这个页面,你可以“编辑”用户的数据...我想发送一条消息,如“已成功编辑”,并使用新内容(DropDownLists和TextBoxes)更新页面。 / p>

我正在使用此消息:

ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('Edited Successfully !');", true);

要更新页面,我尝试了:Response.Redirect(Request.RawURl),即使是简单的Response.Redirect(~/page.aspx)也没有...

如果我尝试这种方式,它会更新页面,但之后它不会显示警告......; \ 所有这些数据(填充DropDownLists,Textboxes等......)都在Page_Load上调用。我试图在发送消息后调用相同的方法,但之后它不会更新= \

任何想法?

1 个答案:

答案 0 :(得分:1)

您遇到的问题是因为您正在重新加载页面,因此您注册的脚本会丢失。

我在这种情况下使用的方法涉及使用jQueryjQuery UI对话框:

在您的页面中,放置一个div作为消息容器。它最初是隐藏的,将在完成数据库请求后显示:

<div id="modal" title="Alert" style="display: none;">
</div>

编写一个显示对话框的javascript函数:

function showConfirmation(text){
    $("#modal").html(text).dialog({
          modal: true, // show the dialog as modal
          buttons: {
                Ok: function() {
                  location.reload();
               }
           }, // add a button that refreshes the page when clicked
           closeOnEscape: false, // avoid the dialog close when ESC is pressed
           dialogClass: 'no-close' // adds a CSS class that hides the default close button
    });
}

dialog函数负责使用jQuery UI库显示对话框。 buttons参数显示一个按下按钮时刷新页面的按钮。

您所要做的就是使用RegisterStartupScript方法注册对话框脚本:

ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "showConfirmation('Edited Successfully !');", true);

如果您不使用jQuery和/或jQuery UI,您只需在head标签中添加引用即可。如果您不想使用CDN,请将文件下载到本地站点。

  <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>  
  <script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">

您可以看到客户端行为this fiddle

的工作示例