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

时间:2011-08-23 03:22:38

标签: javascript asp.net confirm

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

单击“编辑”按钮后,表单进入编辑模式,并显示“保存”和“取消”按钮,其行为符合预期。

我想做的是:

单击“保存”时,显示“Javascript确认”对话框,询问用户是否要向其他用户发送电子邮件,以通知他们刚刚进行的更新。

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

所以,我需要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

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

希望这是有道理的。

由于

马特

2 个答案:

答案 0 :(得分:3)

创建隐藏字段,并根据确认结果设置该字段的值。您没有显示按钮或表单的代码/ 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>

答案 1 :(得分:1)

有几种方法可以做到,但我将使用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;
 }
相关问题