2011-12-27 70 views
0

我做了一個帖子回來得到使用ajax的局部視圖以下是我用來呈現部分視圖中的div稱爲'DivSearchGrid'的代碼。jquery沒有工作後的AJAX後asp.net mvc3

<script type ="text/javascript" > 
     $('#Retrieve').click(function() { 
      $('form').get(0).setAttribute('action', 'Search'); 
      //      $('form').submit(); 
      var formSubmit = $('form'); 
      var datTab; 
      $.ajax({ 
       url: "/AuthorityGrid/Search", 
       type: "POST", 
       data: formSubmit.serialize(), 
       success: function (data) { 
        datTab = data; 
       }, 
       complete: function() { 
        $('#DivSearchGrid').html(datTab); 

       } 

      }) 
      return false; 
     }); 
    </script> 

控制器中的操作方法返回一個帶有新值的網格。我的問題是,ajx調用完成後,我的頁面中的其他jQuery事件停止工作。一些事件的代碼如下。

<script type="text/javascript"> 

     $(function() { 
      //$('th[scope|="col"]').resizable(); 
      $("#resultGrid > tbody").selectable({ 
       selected: function (event, ui) { 
        if (ui.selected.cells != null) { 
         var strAmount = ui.selected.cells(6).innerText; 
         var Amount = strAmount.replace(/,/gi, ""); 
         var keyValue = "AuthorityLevel1=" + ui.selected.cells(11).innerText + ",AuthorityLevel2=" + ui.selected.cells(12).innerText + ",TcmAccount=" + ui.selected.cells(2).innerText + ",TcmType=" + ui.selected.cells(10).innerText + ",Rating=" + ui.selected.cells(5).innerText + ",Amount=" + Amount + ",AuthorityGridKey=" + ui.selected.cells(9).innerText + ",CagName=" + ui.selected.cells(3).innerText 
         var keyValModify = ui.selected.cells(11).innerText + "," + ui.selected.cells(10).innerText + "," + ui.selected.cells(12).innerText + "," + ui.selected.cells(5).innerText + "," + ui.selected.cells(2).innerText + "," + Amount + "," + ui.selected.cells(3).innerText + "," + ui.selected.cells(9).innerText 
         $('#CancelViewParam').val(keyValue); 
         $('#ModifyViewParam').val(keyValModify); 

        } 
       } 
      }); 
     }); 
    </script> 

該函數從網格中選擇一行並將選定的值放入隱藏字段中。

此函數的ajax call.code後面還有一個打開彈出窗口的函數。

$(function() { 
    $("#DivSearch").dialog({ autoOpen: false, height: "600", width: "600", dialogClass: "myRatingHelp", modal: true }); 
    $('#bRatingHelperDivSearch').live('click',function() { $('#DivSearch').dialog('open'); }); 
    $('#DivSearchRating_bOk').click(function() { 
    $("#InputAuthorityGridSearch_Rating").val($("#hidRating").val()); 
    $("#DivSearch").dialog('close'); 
    }); 
    $('#DivSearchRating_bCancel').click(function() { 
    $("#DivSearch").dialog('close'); 
    }); 
    }); 

所有這些功能很好地工作在AJX調用之前,但所有停止呼叫後的工作,有人可以幫忙嗎?

+0

同樣的事情發生在我身上。但我解決了這個問題。讓我告訴你答案。 – 2011-12-27 11:38:16

回答

0

放入一個用戶自定義函數頁面加載jQuery的功能,如

function initializeLoad() { 
    $("#DivSearch").dialog({ autoOpen: false, height: "600", width: "600", dialogClass: "myRatingHelp", modal: true }); 
$('#bRatingHelperDivSearch').live('click',function() { $('#DivSearch').dialog('open'); }); 
$('#DivSearchRating_bOk').click(function() { 
$("#InputAuthorityGridSearch_Rating").val($("#hidRating").val()); 
$("#DivSearch").dialog('close'); 
}); 
$('#DivSearchRating_bCancel').click(function() { 
$("#DivSearch").dialog('close'); 
}); 
} 
initializeLoad(); 

在頁面的下方給出現在把腳本:

<script type="text/javascript"> 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function EndRequestHandler(sender, args) { 
     if (args.get_error() == undefined) { 
     initializeLoad(); 
    } 
} 

以下腳本會打電話給你的jQuery頁面加載方法每次部分回發完成時。

上面我只給出了一些你的功能。你應該把所有必要的功能。

外部鏈接:http://www.aboutfortunate.com/Technology-Blog.aspx?entid=29

希望這有助於你。

+0

只要你的答案,但這不適用於我我得到一個錯誤,Sys是未定義的。我沒有在這裏使用webforms我正在使用MVC3 – Parikshit 2011-12-28 08:11:03

0

檢查「/ AuthorityGrid/Search」頁面,如果再次在此頁面上包含jquery,則會在第二次發生jquery事件時產生問題。總是在主頁面中包含jQuery。

+0

「/ AuthorityGrid/Search」不是一個不同的頁面我正在使用mvc,這個URl是指在同一視圖中的一個動作方法名稱搜索 – Parikshit 2011-12-28 08:41:40