0
這是可能的到顯示東西其他,但保持原始單元格值爲編輯目的?jqGrid:格式化單元格值而不更改實際(基礎)值?
我的jqGrid中的一列是'枚舉'數據。對於編輯我提供的編輯類型:選擇+編輯選項:enum-key:標籤設置,這導致正確顯示選擇編輯器。但我想顯示標籤而不是枚舉鍵爲常規視圖,而不僅僅是編輯。我知道我可以使用自定義單元格格式化但這樣會導致實際值是改變,然後我不得不編輯行之前再次查找成對的標籤鍵...
這是可能的到顯示東西其他,但保持原始單元格值爲編輯目的?jqGrid:格式化單元格值而不更改實際(基礎)值?
我的jqGrid中的一列是'枚舉'數據。對於編輯我提供的編輯類型:選擇+編輯選項:enum-key:標籤設置,這導致正確顯示選擇編輯器。但我想顯示標籤而不是枚舉鍵爲常規視圖,而不僅僅是編輯。我知道我可以使用自定義單元格格式化但這樣會導致實際值是改變,然後我不得不編輯行之前再次查找成對的標籤鍵...
很難說沒有看到一些代碼,但你不應該需要使用自定義格式化程序,只需使用formatter: 'select'
如documentation所示。它明確規定:「數據應包含鍵(」1「或」2「),但數值(」One「或」Two「)將顯示在網格中。
如果您需要更多控制輸出的另一選擇是使用editoptions的buildSelect
選項。例如,這裏是我在代碼中的選擇,還有其他的例子。當然,想法是你可以返回任何數據,然後根據需要操作它來構建選擇。數據事件更改函數然後確保爲輸入字段設置正確的值。
{ name: 'Id', index: 'Id', editable: true, hidden: true,
editoptions: { defaultValue: row_id,
dataUrl: "DataService.asmx/GetList",
buildSelect: function (data) {
var s = '<select>';
if (data && data.d) {
//data is nested, so we need a few steps to get to the actual data
var list = data.d;
var opts = JSON.parse(list);
var subList = opts.List;
//loop through the data to build the options list
for (var i = 0, l = subList.length; i < l; i++)
{ var ri = subList[i];
s += '<option value=' + ri.Id + '>' + ri.Name + '</option>';
}
}
else {
s+= "<option value=0>No data to display</option>";
}
return s + "</select>";
} ,
dataEvents: [
{ type: 'change',
fn: function (e) {
$('input#Id').val(this.value);
}
}
]
},
editrules: {edithidden: true},
edittype: 'select'
}
感謝,buildSelect可以幫助那裏:) – migajek 2011-12-20 23:11:07