Javascript JQuery模态对话框确认不';不显示给用户

Javascript JQuery模态对话框确认不';不显示给用户,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我正在开发一个基于ASP.NET的WebForms应用程序,用C#编写。这个应用程序执行CRUD操作,每次用户想要执行操作时,我都需要向客户端显示确认消息。我决定创建一个jQuery函数,它接收窗口的标题、要显示给用户的消息以及表示操作的按钮 这是我的Javascript函数: var _confirm = false; function Confirm(str, strtitle,button) { e.preventDefault(); if (!strtitle) strtitle

我正在开发一个基于ASP.NET的WebForms应用程序,用C#编写。这个应用程序执行CRUD操作,每次用户想要执行操作时,我都需要向客户端显示确认消息。我决定创建一个jQuery函数,它接收窗口的标题、要显示给用户的消息以及表示操作的按钮

这是我的Javascript函数:

var _confirm = false;
function Confirm(str, strtitle,button) {
  e.preventDefault();
  if (!strtitle) strtitle = 'Mensaje de error';
  $('#dialog').show();
  $('#dialog').html(str);

  $("#dialog").dialog({
    autoOpen: true,
    draggable: false,
    resizable: false,
    modal: true,
    title: strtitle,
    width: 350,
    height: 180,
    show: "slide",
    hide: "puff",

    buttons: {
      "No": function () {
        jQuery(this).dialog("close");
      },

      "Yes": function () {
        jQuery(this).dialog("close");
        _confirm = true;
        button.click();
      }
    },

    close: function () {
      jQuery(this).remove();
    }
  });
  return false;
}
这是ASP按钮:

<asp:button id="btnOk" onclick="btnDGV_Click" 
            onclientclick="Confirm('Desea eliminar el registro', 'Confirmacion', this);" 
            runat="server" text="Eliminar Registro">
</asp:button>

问题是,当我单击按钮时,服务器端消息总是出现,而jQuery对话框从未显示。可能是什么问题?

以下是一些需要检查的问题,这些问题应该可以解决:

  • 检查客户端上呈现的asp:按钮(供您参考)
  • 检查onclientclick是否会阻止该元素发布到服务器。您可能希望在此处返回确认函数的结果
  • 检查确认功能的顺序。您试图在对话框初始化之前显示它
  • 修改您的代码:
    
    onclientclick=“确认('Desea eliminar el registro','Confirmacion',this);返回
    
    这将阻止按钮进行回发

    并修改:
    
    “是”:函数(){
    jQuery(this.dialog)(“close”);
    __doPostBack('','')
    按钮。单击();
    }
    

    如果单击“是”,此代码将进行回发并调用按钮的onclick属性上指定的方法

    ,并且在没有onclick?@BasvanStein否的情况下它是否工作?如果没有onclick=“btnDGV_click”,它只会显示非常薄的一面,并以最快的速度消失至少需要调用$(“#dialog”).show();在对话框初始化之后,而不是之前。另外,我认为您需要从onclick设置中删除“btnDGV_Click”,并以某种方式在“Yes”按钮处理程序中调用它。例如,您可以使用jQuery ajax特性ablo在“Yes”按钮处理程序中如何放置uu doPostBack()。我不擅长ASP.NET web表单。但正如我在这里看到的那样,这会有所帮助。在这种情况下,您需要在u doPostBack()中调用“btnDGV”,并将其从onclick设置中删除。据我所知,您的JS“Confirm”函数结束后,此设置中的工作代码“onclick=”btnDGV_Click“。因此,如果从按钮初始化中删除此设置,则在“确定”中调用u doPostBack()之前,不应进行服务器调用“按钮手柄谢谢DvS,请您澄清第三点:“您试图在对话框初始化之前显示它”这似乎是我的错误,但我无法理解,我只是从jQuery开始这不是借口,但我找不到错误您的函数调用
    $('#dialog').show()
    $(“#dialog”).dialog({…})之前
    
    protected void btnDGV_Click(object sender, EventArgs e) {
      ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Registro eliminado exitosamente !!!')", true);
    }