2012-11-29 58 views
0

好的我回來了,我只是刪除格式化程序:「選擇」,這需要一個匹配的狀態鍵顯示在網格中。JQGrid:無法獲取DataInit函數中的行ID


好吧,我放棄了,我的解決辦法是:

搜索:假的,可編輯:假

直到jqGrid的新版本。


好的,所以看着奧列格的代碼,似乎解決方案是最初填充狀態選擇與所有國家的每個可能的值。考慮到我處理的國家有不少「國家」(世界範圍),爲了找到與實際單元格值匹配的值,拉低3-4000個狀態有點不妥。仍在努力。


我有依賴國家和州下拉菜單(工具欄搜索,內聯編輯和表單編輯)。我在獲取datainit函數中的行ID時遇到問題,因此我可以從狀態searchoptions/editoptions的datainit函數中檢索國家/地區值。

當然有一種方法來檢索?我試着設置了超時,以及,沒有運氣:

{ name: "State", index: "MYSTATE", width: 50, align: "left", editable: true, formatter: "select", stype: "select", edittype: "select", sortable: true, editrules: { required: true, custom: true, custom_func: validateState }, 
      searchoptions: 
      { 
       value: GetStates('NG', true), // just hardcoded here for now 
       dataInit: function (elem) 
       { 
        var rowId = $(elem.target).closest('tr.jqgrow').attr('id'); 
        var country = grid.jqGrid('getCell', rowId, 'Country'); 

...

感謝。

回答

0

您當前的代碼不能工作,因爲回調dataInit將被稱爲<select><input>元素之前被放置在頁面上。此外elem.target是錯誤的。即使$(elem).closest('tr.jqgrow')也會一直是空的jQuery元素。準確地說,如果你使用github的jqGrid的最新代碼,代碼將是可行的。原因是the resent changes這是基於my suggestion。如果您使用jqGrid 4.4.1的最新發布版本,則更改仍然不在此處。我認爲應該對jqGrid的代碼進行一些額外的更改,以使依賴選擇的實現更加容易。

我發現依賴選擇的實現非常複雜和棘手。我建議你從the answer檢查the demo

+0

感謝您的迴應奧列格。我確實有相關的下拉菜單,使用您的代碼作爲參考。唯一的問題是初始條件,我需要國家下拉列表的值來填充州下拉菜單。我嘗試了github的版本,但我不清楚我需要做什麼。我注意到它打破了我在搜索工具欄上使用的燈絲組daterangepicker的實現。 –