2012-06-25 53 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,然后在需要时打开并关闭它们。只是这样做可能会解决您的问题。 –