2013-05-01 37 views
0

我正在建立一個使用數據表格網格的asp.net mvc應用程序。我顯示網格。在網格我加了rowclick事件:jquery datatables,模式窗口後表不可用

function CreateRowClickHandler() { 
var table = $('#table').dataTable(); 
$("#table > tbody").on('click', 'tr', function(e) { 
    e.preventDefault(); 
    var index = $('#table').data('id-index'); 
    var id = table.fnGetData($(this)[0])[index]; 

    var url = $('#table').data('rowclick-url'); 
    url += "/" + id; 
    $().loadPartial(url); 

    }); 

} 

的loadpartial函數加載MVC行動:

$.fn.loadPartial = function (url, callback) { 
    var container = ($(this).length == 0) ? ($("#jqcontainer")) : ($(this)); 
    container.load(url, function (responseText, textStatus, XMLHttpRequest) { 

     if (XMLHttpRequest.status == 403) { 
      $('body').notifyBox({ 
       message: 'Unauthorized access! Call support for help!' 
      }); 
     } 
     if (XMLHttpRequest.status == 500) { 
      $('body').notifyBox({ 
       message: 'The process failed for unknown reasons! Call support for help!' 
      }); 
     } 
     if ($.isFunction(callback)) callback(responseText, textStatus, XMLHttpRequest); 
    }); 
}; 

當我進入鉻調試器,當我第一次加載頁面,我可以打電話:

$('#table').dataTable().fnReloadAjax(); 

這可以根據需要重複多次。它從服務器重新加載數據。當我點擊了行之一,之後我用下面的代碼關閉模態窗口:

    $('#partialview').dialog("close"); 

在Chrome調試器fnreloadajax給了我以下錯誤:

TypeError: Object [object Object] has no method 'fnReloadAjax' 

它看起來像該對象在模型窗口關閉後不再有DataTables網格,但我無法弄清楚爲什麼會發生這種情況。任何人都可以給我一些提示嗎?

+0

你在通過.load()函數加載的頁面中重新加載jquery嗎? – 2013-05-01 16:05:51

+0

這是一個正常的mvc頁面,所以可能是的...讓我們看看如果檢查,會做的伎倆.. – Patrick 2013-05-01 16:28:01

+0

謝謝,這的確是我返回視圖,而不是部分。 – Patrick 2013-05-01 16:30:36

回答

0

我返回了完整頁面。這導致了jquery的新副本被加載。威利幫我弄清楚了這一點。從控制器返回僅部分視圖後,問題就解決了。