如果单击了一个asp.net按钮,我想显示一个确认弹出窗口(是,否)。
如果我单击是或否,它应该执行一些c#代码。
让我们说如果我点击是它会插入一条记录,如果我点击否它会更新记录
有人能给我一个例子,说明如何实现这个目标?因为我是javascript和c#的新手,所以我真的很难过。
答案 0 :(得分:5)
如果您想允许用户取消他们刚刚点击的按钮,您可以使用OnClientClick
属性:
<asp:Button runat="server" OnClientClick="return confirm('Are you sure?')"
OnClick="CSharpMethod" />
CSharpMethod
是代码中的一种方法,用于执行您想要运行的C#行(当用户接受确认时)。
此方法的签名应如下所示:
protected void CSharpMethod(object sender, EventArgs E) {
Response.Write("Hello From Server");
}
修改强>
如果您希望将确认的错误结果发送到服务器,我建议您先创建一个隐藏的输入:
<input type="hidden" runat="server" id="hdnConfirm" />
然后在你的.net按钮
<asp:Button runat="server" OnClientClick="confirmWithUser()"
OnClick="CSharpMethod" />
然后创建JavaScript函数以使用OnClientClick:
function confirmWithUser(){
document.getElementById("hdnConfirm").value = confirm('Are you sure?');
}
在您的C#方法中,您将能够像这样获得用户的响应:
protected void CSharpMethod(object sender, EventArgs E) {
bool whatDidUserSay = Boolean.Parse(hdnConfirm.Value);
//now do one thing or the other based on this value
}
答案 1 :(得分:1)
您无法通过JavaScript使用按钮的ClientClick
事件来获取单击哪个按钮是或否。您可以通过返回true或false来控制表单的提交。
btn.OnClientClick = "return confirm('Ready to submit.')";
Javascript confirm without code in code behind
您希望执行的功能需要一些客户端 JavaScript到服务器端代码交互。这可能是可能的 检查json.org。有一些库执行这种类型 功能。
正如您所说,如果单击Yes
,它会执行某些操作,如果No
则更新。您可以使用Ajax Controls
执行此操作。如果你被允许在你的解决方案中使用它们。
如果您不允许使用它们,请创建hidden field
,并根据确认结果设置该字段的值。
<强>的.aspx 强>
<input type="hidden" id="confirmResult" name="confirmResult" value="" />
<asp:Button OnClientClick="ConfirmDialog();"
OnClick="OnServerClick" runat="server" />
<script>
function ConfirmDialog() {
var result = Confirm("Confirm Insert?");
// set a flag to be submitted - "true"/"false"
// or whatever suits
document.getElementById("confirmResult").value = result;
}
<强> c#中强>
protected void OnServerClick(object sender, EventArgs e) {
bool dialogResult = Convert.ToBoolean(confirmResult.Value);
if(dialogResult)
{
//Insert
}
else
{
//Update
}
}
检查此stackoverflow线程以获取更多详细信息:
ASP.net - Button - Javascript Confirm dialog - execute SOME server-side code?
检查此链接 - 我已使用的AJAX Enabled MessageBox使用UserControl和Ajax执行此类功能,以获取服务器端Click事件的确认结果。
看看这个,它正在使用按钮等的ClientClient
事件,但在此客户端事件中它使用了ModalPopupExtender
ajax控件。
Confirm Message Box