在用户控制页面上打开时,jquery对话框未关闭

use*_*774 10 javascript asp.net jquery

我使用了jQuery对话框.父级具有用户控件,其具有用于在单击时打开弹出页面的图像.aspx页面有取消按钮来关闭jquery方法,它是有效的.我在父页面上添加了我的jquery文件.我把对话框div放在父页面上.

问题是关闭jquery对话框并重新加载父对话框.如果我在弹出页面的标题上添加了我的jquery文件,则会调用该函数,但错误是:

JavaScript运行时错误:对象不支持属性或方法"对话框".此外,取消按钮没有关闭jquery.

但是,当我在弹出页面上取消注释我的jquery文件时,取消按钮可以正常工作.但是关闭弹出窗口并重新加载父页面的另一个按钮,没有调用jquery方法,弹出页面重新加载而没有关闭.

我的代码在jQuery中

function openmodel(url, name, width, height) {
  var maxHeight = dialogMaxHeight(height);
  var dialogHeight = height;
  if (height > maxHeight)
    dialogHeight = maxHeight;   

  $('#dialog-model').dialog({
    my: "center",
    at: "center",
    of: window,
    autoOpen: false,
    resizable: true,
    max_height:'auto',      
    height: 'auto',
    width: width,
    title: name,
    modal: true,
    draggable: true,        
    open: function( ) { 
        $(this).load(url);           
    }, 
 });

$('#dialog-model').dialog('open');
return false;
}

function CloseDialogmodel() {    
    $('#dialog-model').dialog({
        autoOpen: false,
        resizable: true,     
        title: name,
        modal: true, 
    });

    $('#dialog-model').dialog('close');
 }


function CloseDialogModelAndReloadParent() {    
   CloseDialogmodel(); }
Run Code Online (Sandbox Code Playgroud)

aspx页面背后的代码:

 Private Sub btnDone_Click(sender As Object, e As EventArgs) Handles btnDone.Click
 'do something on server
  Dim cs As ClientScriptManager = Page.ClientScript
  cs.RegisterStartupScript(Page.GetType (), "closeandload", "CloseDialogBoxAndReloadParent();", True)
End Sub
Run Code Online (Sandbox Code Playgroud)

希望有人告诉我如何解决问题,所以我可以关闭弹出页面并重新加载它.提前致谢.

小智 1

如果我猜对了,你可以像这样创建对话框

$( "#dialog-confirm" ).dialog({
  //....
  modal: true,
  buttons: {
    "Do Action": function() {
              CloseDialogBoxAndReloadParent();
    },
    "Cancel" : function() {
     CloseDialogBox();

    }
  }
});
Run Code Online (Sandbox Code Playgroud)

} );

如果将元素添加到参数中

 "Cancel" : function() {
     CloseDialogBox(this);

    }
Run Code Online (Sandbox Code Playgroud)

您可以访问正确的元素

function CloseDialogBox(element) {
$(element).dialog('close');
Run Code Online (Sandbox Code Playgroud)

}