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 内にテーブルがあり、テーブルの幅に応じてポップアップの幅を設定しています。私の問題は、ロードされた現在のテーブルではなく、以前のテーブルの幅を取得していることです。同じポップアップを2回開いて閉じると、期待どおりに機能します。上記のコードに問題はありますか?

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 に答える