我们在使用grid的时候,经常遇到这样的需求:
1.
某列在后台服务器返回的值不是客户友好的,需要做转换
2.
某表查询出来的某列,只是一个id,还需要联查别的表,以显示用户友好的数据。但是如何再显示到前台的grid呢?
以下是解决方案:
1.
通过设置colModel Options
的editoptions
:
示例:
jQuery("#grid_id").jqGrid({
...
colModel: [ ... {name:'是否空闲', ..., editoptions:{value:"0:否;1:是"}, edittype:'select', formatter:'select', editable:true }, ... ]
...
});
(editoptions的value还可以是一个map——json格式的字符串;edittype:'select', formatter:'select'的作用是,可以通过jqGrid自带的formedit功能,进行新增和编辑时,可以以下拉框的形式体现)
2.
通过JSON dot notation
When using JSON data with named values (i.e the repeatitems option is false) we can use so named dot notation and index notation.
For example, our colModel definition might be as follows:
jQuery("#gridid").jqGrid({
...
colModel:[
{name:'name',label:'Name', width:150,editable: true},
{name:'id',width:50, sorttype:"int", editable: true,formatter:strongFmatter},
{name:'email',label:'Email', width:150,editable: true,formatter:'email'},
{name:'stock',label:'Stock', width:60, align:"center", editable: true,formatter:'checkbox',edittype:"checkbox"},
{name:'item.price',label:'Price', width:100, align:"right", editable: true,formatter:'currency'},
{name:'item.weight',label:'Weight',width:60, align:"right", editable: true,formatter:'number'},
{name:'ship',label:'Ship Via',width:90, editable: true,formatter:'select', edittype:"select",editoptions: value:"2:FedEx;1:InTime;3:TNT;4:ARK;5:ARAMEX"}},
{name:'note',label:'Notes', width:100, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"20"}}
],
...
});
Note the elements defined as name:'item.price' and name:'item.weight'
Then our data:
{
"page":"1",
"total":2,
"records":"13",
"rows":[
{"id":"12345","name":"Desktop Computers","email":"josh@josh.com","item":{"price":"1000.72", "weight": "1.22" }, "note": "note", "stock": "0","ship": "1"},
{"id":"23456","name":"<var>laptop</var>","note":"Long text ","stock":"yes","item":{"price":"56.72", "weight":"1.22"},"ship": "2"},
{"id":"34567","name":"LCD Monitor","note":"note3","stock":"true","item":{"price":"99999.72", "weight":"1.22"},"ship":"3"},
{"id":"45678","name":"Speakers","note":"note","stock":"false","ship":"4"}
]
}
上面的官方示例中,需要显示item的price和weight,那就要在我们后台代码里这么写,迭代各row,联查item表,然后为item属性赋对象值
分享到:
相关推荐
总结起来,实现"jqgrid行编辑+动态为其他列赋值"涉及了前端交互设计、JavaScript编程、jqGrid API的熟练应用以及后端数据处理。理解和掌握这些知识点,对于开发功能丰富的数据驱动Web应用至关重要。在实际项目中,应...
JqGrid是一款强大的jQuery插件,用于创建交互式的表格,具有数据分页、排序、过滤、编辑等功能。在处理大量数据时,用户可能需要选择表格中的多行,这就是所谓的“全选”功能。本文将详细介绍如何在JqGrid中实现全选...
例如,当某一列的值相同,我们可以设置使其对应的单元格合并,提升表格的可读性。 2. **数据显示**:jqGrid支持自定义数据格式化,用户可以通过`formatter`选项定义如何显示数据。这包括日期格式化、货币格式化或者...
1. **合并行**:在jqGrid中,如果某一行的某些单元格具有相同的值,我们可以通过比较这些值并应用特定的CSS类来实现行合并。这通常需要在rowattr函数中进行操作,检查当前行的数据并与前一行对比。当发现连续几行的...
JQGrid允许我们自定义列的操作按钮,例如添加一个“详情”按钮: ```javascript colModel: [ ... { name: '操作', width: 55, formatter: 'actions', formatoptions: { editbutton: false, delbutton: false, ...
首先,jqGrid是一个强大的表格插件,它提供了丰富的功能,包括数据的分页、排序、搜索以及自定义列等。在实际应用中,我们可能需要根据用户的选择动态改变表格的列展示,例如,用户可以选择他们希望看到的列字段。 ...
jQGrid 的数据模型基于 JSON 格式,通过 colModel 定义列的属性,包括列名、宽度、是否可编辑等。对于编辑类型的列,如 select,我们需要指定 edittype 和 editoptions 属性来定义其行为。 在本例中,我们关注的...
jqGrid是一款非常强大的jQuery插件,主要用于在网页上实现表格数据展示与管理的功能。通过设置不同的属性,可以灵活地控制表格的表现形式和交互行为,满足各种复杂的数据展示需求。 #### 二、详细属性说明 ##### 1...
例如,如果我们想设置某一列的汇总数据,可以这样做: ```javascript $("#gridId").jqGrid('footerData', 'set', {colName: 'sumValue'}); ``` 这里,`colName`是`colModel`中的列名,而`sumValue`是我们要设置的汇...
JQuery插件jqGrid是一款强大的数据网格组件,用于在网页上展示、操作和管理大量结构化数据。它提供了丰富的功能,如数据分页、排序、筛选、编辑等,且易于集成到现有的JQuery应用程序中。以下是对jqGrid常用属性的...
例如,可以指定某列的数据格式化函数,对文本进行特定的处理,如日期格式化、货币转换等。同时,使用`formatter`和`unformat`选项,可以自定义单元格的显示和编辑行为。 **六、jQuery文本动画** jQuery的动画功能...
$("#grid").jqGrid("setCell", selIDs[i], "表格列的名字", "数据"); ``` #### 6. 获得行的值和设置行的值 - 设置行的值: ```javascript $("#grid").setRowData(rowId, { 列名: 值, 列明: 值 }); ``` #### ...