2013-06-24 117 views
0

正在使用Jqgrid MultiSelect選項。動態添加和刪除JqGrid屬性

它工作完美。是否可以動態設置該屬性?

例如:我點擊一個按鈕,然後應該啓用多Select屬性,直到不應該顯示給用戶。

我該如何在JqGrid中實現?

感謝

回答

0

您可以使用這段代碼:如果你想隱藏的每一行的所有複選框

var myGrid = $("#grid_name"); 
    $("#cb_"+myGrid[0].id).hide(); 

,並顯示它

var myGrid = $("#grid_name"); 
    $("#cb_"+myGrid[0].id).show(); 

$("input[name^='jqg_']").each(function() { 
     $(this).hide(); 
    }); 

並顯示它:

$("input[name^='jqg_']").each(function() { 
     $(this).show(); 
    }); 

我已經爲你準備了fiddle
希望它有幫助。

+0

我的問題是AB整個複選框列不僅頁眉部分!感謝您的小提琴 – user2067567

+0

@ user2067567:更新了答案。 – LeftyX

+0

@LeftyX:隱藏chechboxes不會改變jqGrid的多重選擇行爲。如果你點擊一行,然後再點擊另一行,你仍然會有多重選擇行爲。您必須將jqGrid的'multiselect'選項的值更改爲具有單選樣式。如果你點擊導航欄的「Reload Grid」按鈕,對列進行排序或者改變頁碼(點擊下一頁),你會看到最初的'multiselect:true'網格。所以人們必須做更多一點。 – Oleg

2

jqGrid不支持動態創建列。因此,如果不重新創建網格,則無法切換multiselect: true選項(請參閱the answer)。

如果您準備進行實驗,您可以按照我的the answer的建議進行操作,這些建議描述瞭如何在某些限制條件下實現該功能。

已更新:我以前的回答是舊的。如果您使用jQuery版本1.8或更高版本,則必須將行events = $grid.data("events");更改爲events = $._data($grid[0], "events");以將子類reloadGrid事件更改。請參閱固定演示here

0

是的,你可以像這樣

if(true) 
    $("#GridID").jqGrid('setGridParam',{multiselect:true}); 
else 
    $("#GridID").jqGrid('setGridParam',{multiselect:false}); 
+0

你在哪裏叫這個?點擊按鈕? – user2067567

+0

是的,你可以點擊 – Manish

+0

,但複選框不會被刪除,但它的選擇行的功能。 – Manish