colModel edittype: 'select', formatter: 'select' で定義すると、jqgrid に問題が発生します。 これは私の colModel:
colModel:
[
{ name: 'sdv_idreclamo', index: 'sdv_idreclamo', editable: true, edittype: 'text', editoptions: { defaultValue: Idreclamo }, hidden: true },
{ name: 'sdv_parpieza', index: 'sdv_parpieza', align: 'left', width: '35', editable: true, edittype: 'select', editoptions: { dataUrl: '@Url.Action("CargaDropDown", "raTabDatosVehiculo", new { param = "PIEZA"})', buildSelect: createSelectList} },
{ name: 'sdv_parcodclase', index: 'sdv_parcodclase', sortable: true, align: 'left', width: '35', editable: true, edittype: 'select', editoptions: { dataUrl: '@Url.Action("CargaDropDown", "raTabDatosVehiculo", new { param = "CODCLASE"})', buildSelect: createSelectList} }
....
],
Web ページを表示しても、説明には値しか表示されません。たとえば、列 sdv_pieza の説明は "AMORTIGUADOR" 値 :001 で、グリッド表示 001 をロードすると、"AMORTIGUADOR" が表示されます。sdv_pieza に formatter: 'select' を追加しました。
{ name: 'sdv_parpieza', index: 'sdv_parpieza', align: 'left', width: '35', editable: true, edittype: 'select', formatter: 'select', editoptions: { dataUrl: '@Url.Action("CargaDropDown", "raTabDatosVehiculo", new { param = "PIEZA"})', buildSelect: createSelectList} },
グリッドをロードすると、列 sdv_pieza は無効になります!! この列には何も表示されませんか
dataUrl は適切なパラメータを返し、buildSelect: createSelectList で選択を構築します。
createSelectList = function (data) {
var response, s = '<select>', i;
response = jQuery.parseJSON(data);
if (response && response.length) {
$.each(response, function (i) {
s += '<option value="' + this.cp_idparametro + '">' + this.cp_descparametro + '</option>';
});
}
return s + '</select>';
}
これは、jqgrid にデータを取得して編集したときのイメージです。