C# 根据用户按钮选择返回对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事件,如下所示:

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;
    }