$("#grid").jqGrid({
    url:'getdata.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:[
     'ID','日期', '用户'
    ],
    colModel :[
      {name:'id', index:'id', width:40}, 
      {name:'logdate', index:'logdate', width:80, editable:false, formatter:'date', formatoptions:{srcformat:'Y-m-d', newformat:'Y-m-d'}, editrules:{date:true} }, 
      {name:'worker', index:'worker', width:60, editable:true, edittype:'select', formatter:'select',editoptions: { size: 1,dataUrl: 'getselect.php?stype=users'},
...这是表格构建代码,“用户”是通过 getselect.php 获取数据库得到一个select元素,类似:<select>
<option value='zs'>张三</option>
<option value='ls'>李四</option>
<option value='ww'>王五</option>
</select>问题来了,这样处理在编辑状态下正常,可以显示一个select元素,但是在jqGrid表格中显示为空白,如果把formatter:'select'去掉,表格仅显示为用户代码(zs,ls,ww),我希望是显示成用户名,只有不通过动态获取数据,而是设置为数组才能使编辑和显示都正常( editoptions:{value:'zs:张三;ls:李四;ww:王五'} ),求救怎么通过动态获取数据并且使显示正常?

解决方案 »

  1.   

    formatter:'select'不支持 dataUrl。你可以在jquery.jqGrid.src.js里面搜索 :$.unformat.select,就知道它怎么解析了。
      

  2.   

    你可以在表格创建之前把select信息得到,转换成表格显示和编辑都能用的格式。这样有一个问题,select里面的数据不是最新的。
      

  3.   


    目前也只能这么做了,我是用php函数获取一个类似 "zs:张三;ls:李四;ww:王五" 的字符串,然后设置为value值,也不知jqgrid没这功能还是有什么其他方法。