Javascript jqGrid:格式化单元格值而不更改实际(基础)值?

Javascript jqGrid:格式化单元格值而不更改实际(基础)值?,javascript,jquery,jqgrid,jqgrid-formatter,Javascript,Jquery,Jqgrid,Jqgrid Formatter,是否可以显示其他内容,同时保留原始单元格值以供编辑 jqGrid中的一列是“枚举”数据。对于编辑,我提供了edittype:select+editoptions:enum键:标签集,这将导致正确显示选择编辑器。但是,对于常规视图,我希望显示标签而不是枚举键,而不仅仅是编辑。我知道我可以使用自定义单元格格式化程序,但这会导致实际值发生更改,然后我必须在编辑行之前再次查找键-标签对 很难说没有看到一些代码,但您不需要使用自定义格式化程序,只需使用formatter:“选择”,如中所示。它特别指出,“

是否可以显示其他内容,同时保留原始单元格值以供编辑


jqGrid中的一列是“枚举”数据。对于编辑,我提供了edittype:select+editoptions:enum键:标签集,这将导致正确显示选择编辑器。但是,对于常规视图,我希望显示标签而不是枚举键,而不仅仅是编辑。我知道我可以使用自定义单元格格式化程序,但这会导致实际值发生更改,然后我必须在编辑行之前再次查找键-标签对

很难说没有看到一些代码,但您不需要使用自定义格式化程序,只需使用
formatter:“选择”
,如中所示。它特别指出,“数据应包含键(“1”或“2”),但值(“1”或“2”)将显示在网格中”

如果需要对输出进行更多控制,另一个选项是使用editoptions的
buildSelect
选项。例如,我在代码中有一个选择,还有其他的例子。当然,您可以返回任何数据,然后根据需要对其进行操作以构建select。然后,数据事件更改功能确保为输入字段设置了正确的值

{ 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' 
{name:'Id',index:'Id',可编辑:true,隐藏:true,
editoptions:{defaultValue:行\u id,
dataUrl:“DataService.asmx/GetList”,
buildSelect:函数(数据){
var s='';
if(data&&data.d){
//数据是嵌套的,因此我们需要几个步骤来获取实际数据
var list=data.d;
var opts=JSON.parse(列表);
变量子列表=选项列表;
//循环遍历数据以构建选项列表
for(变量i=0,l=subList.length;i
}