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