Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.net-按钮-Javascript确认对话框-执行一些服务器端代码?_Javascript_Asp.net_Confirm - Fatal编程技术网

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

ASP.net-按钮-Javascript确认对话框-执行一些服务器端代码?,javascript,asp.net,confirm,Javascript,Asp.net,Confirm,我有一个简单的ASP.net页面,用户可以在其中编辑自己的信息 单击“编辑”按钮时,表单进入编辑模式,我会显示“保存”和“取消”按钮,其行为与预期一致 我想做的是: 单击“保存”后,会显示一个Javascript确认对话框,询问用户是否希望向其他用户发送电子邮件,通知他们刚刚进行的更新 如果用户说OK,则执行所有服务器端代码以保存数据,并发送电子邮件。 如果用户说取消,则执行所有服务器端代码以保存数据,而不发送电子邮件 所以,我需要javascript框设置一个标志,然后可以在服务器端读取,不知

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

单击“编辑”按钮时,表单进入编辑模式,我会显示“保存”和“取消”按钮,其行为与预期一致

我想做的是:

单击“保存”后,会显示一个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
我知道如何向按钮属性添加确认框,并且已经这样做了。我正在寻找一个关于如何读取服务器端那个框的结果的答案。。。换句话说,我总是希望发生页面回发(通过单击按钮),但只执行一些事件处理程序代码

希望这是有道理的

谢谢


Matt

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

功能提示邮件(){
var结果=确认(“向每个人发送电子邮件?”);
//设置要提交的标志-可以是“Y”/“N”或“true”/“false”
//或者随便什么合适的
document.getElementById(“sendEmail”).value=result?“Y”:“N”;
}

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

所以

您的aspx:

   <asp:HiddenField ID="HiddenField1" runat="server" Value="" />
Javascript:

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

最终,这是最接近我正在使用的解决方案。我在表单中添加了一个隐藏字段,然后在onClick的按钮属性中添加了一个javascript字符串,该字符串根据对javascript confirm()对话框的响应设置隐藏字段的值。谢谢
 //after confirm call this
 function SetValue(val)
 {
   document.getElementById('HiddenField1').value=val;
 }