C# 根据用户按钮选择返回对onClientClick的响应
我有一个onClientClick事件,如下所示:C# 根据用户按钮选择返回对onClientClick的响应,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我有一个onClientClick事件,如下所示: OnClientClick=“return getErrors();”-这当然是在 该功能的主体是: function getErrors() { var errorString = "some errors"; return $('<div id="dialog-message" title="Required"><p>' + errorString + '</p></div>')
OnClientClick=“return getErrors();”
-这当然是在
该功能的主体是:
function getErrors() {
var errorString = "some errors";
return $('<div id="dialog-message" title="Required"><p>' + errorString + '</p></div>').dialog(
{
modal: true,
width: 700,
buttons:
{
Ok: function () {
$(this).dialog("close");
return callback_ErrorAction(0);
},
Cancel: function () {
$(this).dialog("close");
return callback_ErrorAction(1);
}
}
});
return false; //omit this and OnClientClick gets undefined response variable
}
问题是我需要OnClientClick响应基于用户响应,单击Ok或cancel,但当前解决方案在用户有机会选择Ok或cancel之前返回对OnClientClick的响应。感谢您的帮助,因为jQuery对话框使用 相反,您需要始终从
OnClientClick
方法返回false
,并在需要时手动触发回发:
function getErrors() {
var errorString = "some errors";
$('<div id="dialog-message" title="Required"><p>' + errorString + '</p></div>').dialog(
{
modal: true,
width: 700,
buttons:
{
Ok: function () {
// Are you sure you want to close the dialog here? It will disappear when the page refreshes anyway
$(this).dialog("close");
// Manually trigger the postback
__doPostBack('<%= btnSubmit.UniqueID %>', '');
},
Cancel: function () {
$(this).dialog("close");
// Error, do nothing as we will cancel the postback by default
}
}
});
return false;
}
函数getErrors(){
var errorString=“一些错误”;
$(“”+errorString+“”)。对话框(
{
莫代尔:是的,
宽度:700,
按钮:
{
Ok:函数(){
//是否确实要关闭此处的对话框?当页面刷新时,对话框将消失
$(此).dialog(“关闭”);
//手动触发回发
__doPostBack('','');
},
取消:函数(){
$(此).dialog(“关闭”);
//错误,不执行任何操作,因为默认情况下我们将取消回发
}
}
});
返回false;
}
有关手动调用doPostBack调用的更多信息,请参阅。因此用户单击某个对象,这将触发
getErrors()
因此用户看到一个模式弹出窗口,但这不是您想要的?@bump:用户单击按钮>[onClientClick]触发getErrors()-这是一个jquery确认对话框>用户进行选择[确定或取消]>然后将true或false返回给onClientClick。这是预期/期望的行为,但我得到的是…getErrors()被激发,它立即返回,用户没有机会在“确定”或“取消”之间进行选择。我希望我的问题更清楚。感谢您的帮助。您的建议取得了一些进展。但是,例如,当选择“确定”按钮以继续回发时,该按钮的Onclick事件似乎不是-just“新回发”。我使用了定义的服务器按钮控件的id,然后根据建议的答案将其用作:u doPostBack('btnSave','');请问缺少的部分是什么?再次感谢
function getErrors() {
var errorString = "some errors";
$('<div id="dialog-message" title="Required"><p>' + errorString + '</p></div>').dialog(
{
modal: true,
width: 700,
buttons:
{
Ok: function () {
// Are you sure you want to close the dialog here? It will disappear when the page refreshes anyway
$(this).dialog("close");
// Manually trigger the postback
__doPostBack('<%= btnSubmit.UniqueID %>', '');
},
Cancel: function () {
$(this).dialog("close");
// Error, do nothing as we will cancel the postback by default
}
}
});
return false;
}