Jquery 在Jqgrid中显示枚举描述,而不是枚举
我用Java编写了这样一个枚举: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
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属性。因此,将描述提交到服务器,而不是枚举。希望你能理解。