ASP.net -按钮- Javascript确认对话框-执行一些服务器端代码

ASP.net - Button - Javascript Confirm dialog - execute SOME server-side code?

本文关键字:服务器端 执行 代码 确认 net 按钮 Javascript ASP 对话框      更新时间:2023-09-26

我有一个简单的ASP.net页面,用户可以在其中编辑自己的信息。

当点击"编辑"按钮时,表单进入编辑模式,我显示"保存"answers"取消"按钮,它们的行为与预期的一样。

我想做的是:

当点击"保存"时,显示一个Javascript确认对话框,询问用户是否要发送电子邮件给其他用户,以通知他们刚刚完成的更新。

如果用户说OK,则执行所有服务器端代码来保存数据,并发送电子邮件。如果用户说取消,则执行所有服务器端代码来保存数据,而不发送电子邮件。

所以,我需要javascript框设置一个标志,然后可以读取服务器端,不知何故…然后我可以这样做:

Sub btnSave_Click(sender, e) Handles btnSave.Click
    'Save all the data
    If sendEmail Then  'This flag set by reading result of javascript Confirm
        'Send the email
    End If
End Sub

我知道如何在按钮属性中添加确认框,并且已经这样做了。我正在寻找如何在服务器端读取该框的结果的答案…换句话说,我总是希望Page回发发生(通过单击按钮),但只执行一些事件处理程序代码。

希望这有意义。

感谢马特

创建一个隐藏字段,并根据确认结果设置该字段的值。您还没有显示您的按钮或表单的代码/HTML,但是您可以将这样的东西放入其中:

<input type="hidden" id="sendEmail" name="sendEmail" value="" />
<input type="submit" value="Save" onclick="promptForEmail();" />
<script>
   function promptForEmail() {
      var result = Confirm("Send everybody an email?");
      // set a flag to be submitted - could be "Y"/"N" or "true"/"false"
      // or whatever suits
      document.getElementById("sendEmail").value = result ? "Y" : "N";
   }
</script>

有几种方法可以做到这一点,但我将使用asp:HiddenField。在javascript中,在用户确认后,让其结果在隐藏字段中设置。在服务器端,你可以像访问其他asp.net控件一样访问它。

aspx

:

   <asp:HiddenField ID="HiddenField1" runat="server" Value="" />
后台代码:

  protected void Page_Load(object sender, EventArgs e)
  {
      if (!Page.IsPostBack)
      {
        var result = HiddenField1.Value; 
      } 
  }
Javascript:

 //after confirm call this
 function SetValue(val)
 {
   document.getElementById('HiddenField1').value=val;
 }