jqGrid:选择框值格式化程序问题

时间:2014-10-12 18:35:42

标签: jquery jqgrid

我的一个jqGrid中有一个状态列。它保持值0或1.对我来说0表示不活动,1表示活动。所以我使用格式化程序在网格中显示Active / Inactive而不是0/1。 当我要编辑记录时,我发现在选择框中没有预先选择正确的值。在编辑视图中,选择框始终显示“活动”作为选定项。但是如果我在网格中显示0/1而不是使用格式化程序,则编辑窗口会在选择框所选项目中显示正确的值。但我需要显示Active / Inactive而不是0/1。

格式化

formatter: function(cellValue, options,
                        rowObject) {
                        var val="";
                        if(cellValue=='1')
                            val= "Active";
                        else if(cellValue=='0')
                            val='<span class="cellWithoutBackground" style="background-color:#FFF4F4;color:red;">Inactive</span>';
                        else
                            val= '';

                        return val;

2 个答案:

答案 0 :(得分:0)

我无法想象您的问题背后的确切原因,但希望此解决方案能够为您提供帮助。

因此,将行编辑为select的基本基础是使用

完成的
name: 'participants',
index: 'participants',
editable: true,
edittype:"select",

现在您需要以密钥对形式定义选择选项值,

editoptions:{value:"US:USA;CND:CANADA;FR:FRANCE;LUX:LUXEMBORG"}
//here US is the value of the select box and USA is the label displayed

在您发送给jqGrid的数据中,您需要将值发送为&#34; US&#34;不是&#34;美国&#34;如下所示,

var localdata = [{
            "name": "Birthday",
            "id": 1,
            "date": 1284393600000,
            "description": "John's 20th",
            "participants": "US"},
        {
            "name": "New Year",
            "id": 2,
            "date": 1294329600000,
            "description": "2011 New Year",
            "participants": "CND"},
        {
            "name": "Christmas",
            "id": 3,
            "date": 1324742400000,
            "description": "Once per year",
            "participants": "LUX"}
        ];

因此,您选择的值的错误值可能是您面临的问题。

以下是INLINE EDIT JQGRID&amp;的演示NORMAL EDIT

希望这有助于你的事业。

此致

答案 1 :(得分:0)

我建议您使用formatter: "select"(参见文档here)和可选的cellattr来设置单元格的颜色,这会更改单元格的颜色/背景“非活动”。有关cellattr用法的更多示例,请参阅the answerthis one

如果您需要突出显示整行而不是一个单元格,则可以使用rowattr代替cellattr(请参阅here)。