2010-06-07 74 views
2

是否有jqGrid的办法有,在这个colModel示例使用一个选择像一个可编辑的列:的jqGrid:可编辑栏始终显示选择

{ 
name: 'Options', 
index: 'Options', 
width: 150, 
align: 'left', 
resizable: false, 
editable: true, 
edittype: 'select', 
editoptions: { 
    value: function() { return buildSelect(); } 
}, 
formatter: 'select' 
} 

,但始终显示选择?

我以前用复选框工作过,但似乎没有办法用选择。理想情况下,我希望这可以在celledit模式下工作。有任何想法吗?

回答

4

一切皆有可能。我不确定,你想要的是最好的方法。在大多数情况下,我建议使用某种标准方式,那么在更改为您使用的控件的新版本后,您的生活将变得更加轻松。

不过,您可以使用自定义格式化程序(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter)而不是formatter: 'select'来显示列的包含方式。例如,

{ name: 'Options', width: 150, align: 'left', editable: true, edittype: 'select', 
    editoptions: { 
    value: function() { return buildSelect(); } 
    }, 
    formatter: function (cellvalue, options, rowObject, action) { 
    if (cellvalue === 'Yes') { 
     return '<select><option value="1" selected="selected">Yes</option>' + 
        '<option value="0">No</option></select>'; 
    } else { 
     return '<select><option value="1">Yes</option>' + 
        '<option value="0" selected="selected">No</option></select>'; 
    } 
    } 
} 

可以被用来显示与select“是”和“否”值,而不是默认的电流值(“是”或“否”)。您还可以绑定这样的select元素的change句柄的某个函数。

+0

好东西。发现。我是否还需要使单元格可编辑(并使用editoptions),还是将网格存储自定义格式器中创建的下拉列表中的选定值? – Nigel 2010-06-07 23:07:21

+0

自定义格式化程序只显示数据。要能够更改数据并在服务器上保存更改的值,您必须使用任何编辑模式(单元格编辑/内联编辑或表单编辑),请参阅http://www.trirand.com/jqgridwiki/doku.php?id=维基:jqgriddocs#编辑。 – Oleg 2010-06-07 23:23:15