2012-06-25 52 views
0

當我點擊窗體中的New Trade按鈕時,它會打開jQuery UI對話框。但是,我有鏈接按鈕在GridView中,當我點擊鏈接按鈕時,它應該打開jQuery UI對話框,它會在點擊新的交易按鈕之前打開jQuery UI對話框。但是,點擊新的交易按鈕後,如果我點擊鏈接按鈕在gridview它調用「ViewTradeDialog(id)」功能,對話框不會打開,它顯示錯誤消息「$ vwdia.html(數據).dialog不是一個功能「。我的代碼如下:在asp.net中的jquery ui對話框mvc3不會在第二次打開

@using (Html.BeginForm("NewTrade", "Trade", FormMethod.Post, new { id = "searchForm" })) 
{ 

    <div id="searchbtn"> 
     <input id="btn_newtrade" type="submit" value="New Trade" /> 
    </div> 


} 


jquery code 

    <script type="text/javascript"> 
$(function() { 






    var $loading = $('<img src="../../loading.gif" alt="loading">'); 



    var $dialog = $('<div></div>').append($loading); 


    $('#searchForm').submit(function (e) { 

     var url = this.action; 

     $.ajax({ 
      autoOpen: false, 
      url: url, 
      success: function (data) { 
       $dialog.html(data).dialog({ 
        zIndex:1, 
        width: 1400, 
        height: 600, 
        resizable: false, 
        title: 'New Trade Details', 
        modal: true, 
        buttons: { 
         "close": function() { 
          $dialog.dialog('close'); 
         }, 

         "Add Trade": function() { 
          $dialog.dialog('close'); 
          $.ajax({ 
           type: 'POST', 
           url: url 

          }); 
         } 
        } 
       }); 
      } 
     }); 
     return false; 

    }); 



}); 



function ViewTradeDialog(id) { 



    alert(id); 

    var $vwdia = $('<div></div>'); 

    var url = '/Trade/ViewTrades?tradeid=' + id; 


    $.ajax({ 
     url: url, 
     success: function (data) { 
      $vwdia.html(data).dialog({ 

       width: 600, 
       height: 600, 
       resizable: false, 
       title: 'View Trade Details', 
       modal: false, 
       buttons: { 
        "close": function() { 
         $vwdia.dialog('close'); 
        } 
       } 
      }); 
     } 
    }); 



    return false; 


} 

回答

0

你可能會覆蓋對話框中,單擊新的貿易每次插件,因爲它是適用於同一元素:

$dialog.html(data).dialog(... 

這可能是由替換對話框的html並重新應用它打破的插件。你在JS控制檯中看到任何其他錯誤嗎?

+0

在js控制檯沒有錯誤,你能給出正確的代碼 –

+0

我沒有時間去解決它給你,但我會說我更喜歡將我的對話框分開並修復它們在頁面上而不是動態創建就像你一樣。我會讓我的對話框div住在頁面上,只需將它們連接到document.ready,然後在需要時打開並關閉它們。只是這樣做可能會解決您的問題。 –