asp.net中的jquery ui对话框mvc3第二次没有打开

时间:2012-06-25 15:12:41

标签: asp.net-mvc-3 jquery-ui-dialog

当我单击表单中的New Trade按钮时,它会打开jquery ui对话框。但是,我在gridview中有链接按钮,当我点击它应该打开jquery ui对话框的链接按钮时,它会在点击新的交易按钮之前打开jquery ui对话框。但是,点击新的交易按钮后,如果我点击gridview中的链接按钮,它调用“ViewTradeDialog(id)”功能,对话框没有打开,它显示错误信息“$ vwdia.html(data).dialog不是一个功能“。我的代码如下:

    @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;


 }

1 个答案:

答案 0 :(得分:0)

每次单击新交易时,您可能会覆盖对话框插件,因为它应用于同一元素:

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

有可能通过替换对话框的html并重新应用它正在破坏的插件。您是否在JS控制台中看到任何其他错误?