jqgrid formatter button事件
时间: 2023-07-28 15:06:56 浏览: 49
的实现方式是什么?
对于jqgrid的formatter button事件的实现方式,通常有两种方法:
1)使用自定义formatter函数,然后绑定button的点击事件,例如:
```
function myFormatter(cellvalue, options, rowObject) {
return "<button onclick='myFunction(" + options.rowId + ")'>点击</button>";
}
function myFunction(rowId) {
//处理按钮点击事件
}
```
2)使用jqgrid自带的formatter:"actions",该formatter会生成一个包含多个按钮的单元格,例如:
```
formatter: "actions",
formatoptions: {
keys: true,
editbutton: true,
delbutton: true,
editformbutton: false,
aftersavefunc: function (rowid, response) {
alert(response.responseText);
}
}
```
需要注意的是,使用jqgrid自带的formatter:"actions"时,需要在colModel中指定哪些按钮可见,以及按钮点击后的处理方式。
相关问题
jqgrid formatter处理异步
在 jqGrid 中,你可以使用自定义 formatter 函数来处理异步数据。通常情况下,如果需要处理异步数据,你可以使用 jQuery 的 `$.ajax` 方法或者 `$.getJSON` 方法来获取数据,并在获取到数据后进行处理。以下是一个使用 `$.getJSON` 方法处理异步数据的示例代码:
```javascript
{
name: 'asyncData',
index: 'asyncData',
width: 100,
formatter: function(cellvalue, options, rowObject) {
var id = rowObject.id;
var url = 'data.json?id=' + id;
// 使用 $.getJSON 方法获取异步数据
$.getJSON(url, function(data) {
// 在获取到数据后,更新单元格的显示
var value = data.asyncData;
$('#grid').jqGrid('setCell', options.rowId, options.colModel.name, value);
});
// 返回一个占位符
return 'loading...';
}
}
```
在上面的代码中,我们定义了一个名为 `asyncData` 的列,并使用 `formatter` 函数来处理异步数据。在 `formatter` 函数中,我们首先获取当前行的 id,然后使用 `$.getJSON` 方法获取异步数据。在获取到数据后,我们使用 `setCell` 方法更新单元格的显示。这样就可以处理异步数据了。
需要注意的是,在获取异步数据时,我们返回了一个占位符 `'loading...'`。这是因为在异步数据加载完成之前,我们需要给单元格一个占位符,避免单元格显示为空。
jqgrid formatter 处理异步函数
在 jqGrid 中使用 formatter 处理异步函数可以按照以下步骤操作:
1. 定义 formatter 函数,在函数中发起异步请求获取数据,如下:
```
function myFormatter(cellvalue, options, rowObject) {
var result = "";
$.ajax({
url: "/api/getData?id=" + cellvalue,
async: false,
success: function (data) {
result = data;
}
});
return result;
}
```
这里的 myFormatter 函数中,通过 ajax 请求异步获取数据,并将结果保存在 result 变量中,最后返回 result。
2. 在 colModel 中使用 formatter 属性指定 formatter 函数,如下:
```
{
name: 'xxx',
index: 'xxx',
formatter: myFormatter,
// ...
}
```
这里的 name 和 index 属性分别表示列名和列的索引,formatter 属性指定使用 myFormatter 函数对该列进行格式化。
需要注意的是,由于异步请求是阻塞的,因此需要将 async 属性设置为 false,这样才能保证在 formatter 函数返回结果之前,异步请求已经完成。
另外,由于异步请求可能会导致性能问题,因此建议仅在必要时才使用异步函数处理 formatter。