0

我有一个 Jquery 对话框,如下所示:

$("#dvPopup").dialog({
        autoOpen: false,
        width: 450,
        height: 300,
        buttons: [{
            text: "Ok",
            click: function () { $(this).dialog("close"); }
        }
        ]
    });

我有以下函数,我在单击网格中的链接时调用它(表中的每一行都有一个弹出链接):

function showNotes(Id) {
    var grid = $("#NotesPopup").data("tGrid");
    grid.ajax.selectUrl = "/Test/GetNotes?Id=" + Id;
    grid.rebind();
    $("#dvPopup").dialog("open");
    var width= $("#dvPopup .t-grid >table").width();

    if (width > 450) {
        $(".ui-widget-content").css("width", width + 30);
    }
    else{
        $(".ui-widget-content").css("width", 450);
    }
    $(".ui-widget-content").css("height", 'auto');        
}

我在 dvPopup 中有一个表格,我根据表格的宽度设置弹出窗口的宽度。我的问题是我加载了前一个表的宽度,而不是加载了当前表,当我打开和关闭同一个弹出窗口两次时,它按预期工作。上面的代码有问题吗?

4

1 回答 1

0

我破解了它。我使用了不同的选择器而不是"#dvPopup .t-grid >table使用了解决我的问题的对话框选项。这是解决方案:

function showNotes(Id) {
 var grid = $("#NotesPopup").data("tGrid");     
 grid.ajax.selectUrl = "/Test/GetNotes?Id=" + Id;
 grid.rebind();
 $("#dvPopup").dialog("open");
 var width= $(".table_1").width();
  if (width > 450) {
      $("#dvPopup").dialog('option', 'width', test + 30);
 }     
else{
      $("#dvPopup").dialog('option', 'width', test + 30);
 }
  $("#dvNotesPopup").dialog('option', 'height', 'auto');
 } 
于 2012-05-02T12:51:26.573 回答