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