2013-02-21 32 views
0

我有幾個包含jqGrid的頁面,所有頁面都定義了默認的onSelectRowEventHandler函數。將第二個onSelectRow處理程序綁定到jqGrid上飛行

在其中一些頁面上,我想放入部分視圖(@Html.Partial("SpecialGridScripts");)和文檔就緒處理程序中,將第二個事件處理程序綁定到selectrow。當用戶選擇一行時,原始和自定義事件處理程序都應該觸發。

我至今嘗試過(不工作):

$(document).ready(function() { 

    jQuery.extend(jQuery.jgrid.defaults, { 

     onSelectAll: function (ids, selected) { 
      $(this).triggerHandler("selectAll.jqGrid", [ids, selected]); 
     }, 
     onSelectRow: function (id, selected) { 
      $(this).triggerHandler("selectRow.jqGrid", [id, selected]); 
     }, 

    }); 

    $('#myGrid').bind('selectRow.jqGrid', function (event, id, selected) { 
     UpdateVisibility(); 
    }); 

}); 

Based on this jqgrid multiple event handlers example

+0

你爲什麼不直接從onSelectRow事件調用第二個動作? – Mark 2013-02-21 13:25:07

+0

消除依賴性。 – Kev 2013-02-21 15:17:43

+0

但是你可以讓事件調用每個函數,它們不會相互依賴。我不是說在第一個函數裏面調用第二個函數,我的意思是在事件處理函數裏面。 – Mark 2013-02-21 15:22:33

回答

1

我已經解決了這個我自己:

$(document).ready(function() { 

    jQuery.extend(jQuery.jgrid.defaults, { 
    onSelectAll: function (ids, selected) { 
     $(this).triggerHandler("selectAll.jqGrid", [ids, selected]); 
    }, 
    onSelectRow: function (id, selected) { 
     $(this).triggerHandler("selectRow.jqGrid", [id, selected]); 
    }, 

}); 

$('#myGrid').on('jqGridSelectRow jqGridSelectAll', function (event, id, selected) { 
     UpdateVisibility(); 
    }); 

});

使用jqGrid版本> 4.3.2它使用jQuery事件,所以我可以將它綁定到jqGridSelectRow和jqGridSelectAll上。我認爲我發佈的鏈接中的解決方案僅適用於版本4.3.2的jqGrid <。

相關問題