Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在Jqgrid中显示枚举描述,而不是枚举_Jquery_Jqgrid_Struts2 - Fatal编程技术网

Jquery 在Jqgrid中显示枚举描述,而不是枚举

Jquery 在Jqgrid中显示枚举描述,而不是枚举,jquery,jqgrid,struts2,Jquery,Jqgrid,Struts2,我用Java编写了这样一个枚举: public enum Status { ACTIVE("Active"), IN_ACTIVE("InActive"); Status(String desc) { this.description = desc; } private String description; public String getDescription() { return description; } public vo

我用Java编写了这样一个枚举:

public enum Status
{
  ACTIVE("Active"), IN_ACTIVE("InActive");

  Status(String desc)
  {
    this.description = desc;
  }

  private String description;

  public String getDescription()
  {
    return description;
  }

  public void setDescription(String desc)
  {
    this.description = desc;
  }
}
此枚举是jqGrid中的一个属性。但它始终显示枚举,即ACTIVE或IN_ACTIVE。我希望jqgrid显示活动和非活动。 谢谢

您可以编写一个程序来实现这一点。例如:

formatStatus: function (cellvalue, options, rowObject){
   if (cellvalue == "ACTIVE")
       return "Active";
   return "InActive";
}
然后确保使用colmodel中的格式化程序:

{name: 'status', formatter: formatStatus, ...},
这有帮助吗?

在枚举中实现一个toString(),如下所示

public toString() {
    return description;
}

这将确保您的json响应具有描述而不是枚举名称。

感谢您的响应。这肯定会奏效的。但我不想在脚本文件或jsp中重新定义枚举的描述。无法对枚举调用getDescription()以获取描述。原因是,如果我需要更改,比如从Active更改为Activated,我只会在一个位置进行更改。Thanks@Uchenna-根据代码的结构,您可以将值写入页面上的变量,然后在格式化程序中使用这些变量。例如:
返回ActiveStatusValue确定。我想那很好。因为我在想,如果可以在网格上使用像user.username这样的javabean属性,为什么不能在enum上使用同样的属性呢。只是一个想法。thanksDoesn看起来不是一个好的选择,因为这将在代码中创建第二个位置来跟踪文本值。您可以发布定义jqGrid的JavaScript代码吗。您是否使用格式化程序:“选择”
(请参阅)?能否在服务器响应中提供状态和状态描述之间的映射?如果您发布返回服务器的JSON/XML数据示例(一行数据就足够了),这将非常有用。这种方法将是最好的选择。但这里的问题是,我在html select中使用了相同的枚举。因此,在修改表单时,select将呈现枚举的描述,而不是select选项的value属性。因此,将描述提交到服务器,而不是枚举。希望你能理解。