jqgrid afterInsertRow事件可以改变绑定的值,
代码如:afterInsertRow: function (rowid, aData) {
                    if (aData.YPSYPL == "1") {
                        $('#Grid').jqGrid('setCell', rowid, 'YPSYPL', '通常');
                    }这样可以把原本的value 显示成想要的 文本显示在页面中, 同样的 在编辑状态下的 select 也是可以绑定值 
 问题1: rowData.YPSYPL 取到的值是 “通常”,如何取到对应的value值? 及如何取到 1
问题2: 编辑状态完成后 getChangedCells 事件 取到改变的值以后,也只是select的text值 如何获取到value值呢?jqgridgetChangedCells

解决方案 »

  1.   


    afterInsertRow: function (rowid, aData) {
    debugger;
                        if (aData.YPSYPL == "1") {
                            $('#Grid').jqGrid('setCell', rowid, 'YPSYPL', '通常');
                        }用debugger调试一下看aData.YPSYPL是什么类型
    有可能取值为aData.YPSYPL.value
      

  2.   

    colModel: [
    {name: 'YPSYPL', formatter: function (v) { if (v == '1') return '通常'; return '--'; }
    , unformat: function (cellvalue) { if (cellvalue == '通常') return '1'; return '0'; }
    }
    select感觉是bug没修正好,不过可以通过formatter和unformat实现text对应值的转换。自己动手写下加深印象,关键是定义select可用option的数组对象
      

  3.   

    一般情况的text 我试试先  可是
    select 是动态绑定的  用 jQuery("#Grid").setColProp(name, { editoptions: { value: msg} });这个事件, msg 是后台按照它option格式来拼接的字符串,这种情况下呢?
      

  4.   

    msg是固定的吧,将msg拆分成JSON对象,再使用那2个配置,前提是text需要唯一,不能出现重复项,要不就不知道获取那个text了var msg = '1:A;2:B;3:C';
    var oMsg = eval('({"' + msg.replace(/:/g, '":"').replace(/;/g, '","') + '"})');//生成对象//......
    colModel: [
    { name: '字段名称',editable: true
    , edittype: 'select'
     , editoptions: {value:msg}
     , formatter: function (v) { return oMsg[v]; }
      , unformat: function (v) {
         for (k in oMsg) if (oMsg[k] == v) return k;
      }
    }
      

  5.   

    msg 是后台动态生成的,不过用你这方法 貌似还是不行,不过还是谢了  给了点思路 其他的我自己去想把