easyui的datagrid中editor和combogrid的结合使用
来源:互联网 发布:进度条js代码 编辑:程序博客网 时间:2024/06/10 09:43
在easyui中,datagrid是使用频率非常高的一种控件,因此也有了各种各样的功能需求,这里我简单介绍一下我在datagrid中editor类型是combogrid的使用经历。
下面是我的效果图片:
1
2
3
4
点击修改 begineditor,点击完成endeditor。 由于分类 和价格 单位 是一体的,即每一种分类都有与之对应的价格和单位,所以我希望选择分类的时候能够看到相应的价格和单位,分类变了,价格和单位也发生相应的变化。我认为使用combogrid比较合适。
通过官方文档,(http://www.jeasyui.com/documentation/index.php#)
editor
string,objec
ndicate the edit type. When string indicates the edit type, when object contains two properties:
type: string, the edit type, possible types are: text,textbox,numberbox,numberspinner, combobox,combotree,combogrid,datebox,datetimebox, timespinner,datetimespinner, textarea,checkbox,validatebox.
options: object, the editor options corresponding to the edit type.
官方文档说type 可以是combogrid,但是我使用的时候,没有起作用,不知是easyui的版本问题还是什么其他问题。
查了一下资料,扩展了一下:
$.extend($.fn.datagrid.defaults.editors,{
combogrid: {
init: function(container,options){
var input = $('<inputtype="text" class="datagrid-editable-input">').appendTo(container);
input.combogrid(options);
return input;
},
destroy: function(target){
$(target).combogrid('destroy');
},
getValue: function(target){
return $(target).combogrid('getValue');
},
setValue: function(target,value){
$(target).combogrid('setValue', value);
},
resize: function(target,width){
$(target).combogrid('resize',width);
},
}
});
下面是datagrid的field,注意$data是ajax从后台检索的数据。
{field:'reusingClass',title:'分类',align:'center',width:80,
editor:{
type:'combogrid',
options:{
data:$data,
panelWidth:450,
idField:'id',
textField:'name',
required:true,
editable:false,
columns:[[
{field:'id',title:'编号',width:60},
{field:'name',title:'名称',width:100},
{field:'price',title:'价格',width:120},
{field:'unitName',title:'单位',width:100}
]],
}},},
这个时候combogrid就可以用了,
我们可以看一下combogrid的定义,idField:'id', textField:'name',这个时候我们选择了分类,datagrid显示的值是idfield对应的id,并不是我们想象中的name.如图所示:
分类显示了编号,这时候我们就需要调整了。
Combobox 有一个formatter方法,它可以调整combobox值
{field:'name',title:'名称',width:'24%',editor:{
type:'combobox',
options:{
mode : "remote",
url : getListUrl,
panelWidth : 350,
valueField : "id",
textField : "name",
formatter: function(row){
var opts = $(this).combobox('options');
return row[opts.textField];
},
}}这样菜品的值就是textfield的值
经过调查发现combogrid没有类似的方法,那就要想别的方法了。
1. 可以给combogrid扩展formatter方法。这是一个思路,但我没有成功。
2. 把得到的id转化为名称。
方法1:
{field:'reusingClass',title:'分类',align:'center',width:80,
formatter:function(value){
if(!$data&& $data.length>0 ){
for(vari=0;i<$data.length,i++){
if($data[i].id== value){
return$data[i].name;
}else{return value;}
},
方法2:
editor:{
type:'combogrid',
options:{
data:$data,
panelWidth:450,
idField:'id',
textField:'name',
required:true,
editable:false,
columns:[[
{field:'id',title:'编号',width:60},
{field:'name',title:'名称',width:100},
{field:'price',title:'价格',width:120},
{field:'unitName',title:'单位',width:100}
]],
onSelect:function(index,row){
testName = row.name;
testReusingclassesId = row.id;
testPrice = row.price;
testUnitName = row.unitName;
}
}},},
在combogrid中加一个onSelect事件,把需要的值记录下来,在endedit的时候,刷新一下这条记录
onEndEdit:function(index,row)
{ if(testPrice !=""){
row.price = Number(testPrice);
}
if(testUnitName !=""){
row.unit = testUnitName;
}
if(testReusingclassesId !=""){
row.reusingClassId =testReusingclassesId;
}
if(testName !=""){
row.reusingClass = testName;
}
$(" #orderDetailsList").datagrid('refreshRow', index);
testPrice = "";
testUnitName = "";
testReusingclassesId = "";
testName="";
}
注意:var testPrice ="";
var testUnitName ="";
var testReusingclassesId ="";
var testName ="";
注意这几个变量的命名范围。
- easyui的datagrid中editor和combogrid的结合使用
- EasyUI Combogrid的使用
- EasyUI中combogrid的使用方法
- EasyUI中combogrid的使用方法
- EasyUI中combogrid的使用方法
- jQuery-easyUI的使用:combogrid
- EasyUI中datagrid控件的Editor
- EasyUi datagrid中Editor需要注意的:
- easyUI在可编辑的datagrid中加入combogrid 实现下拉选择填充列
- easyUI在可编辑的datagrid中加入combogrid 实现下拉选择填充列
- easyui combogrid 的查询
- EasyUI中combogrid的代码实例
- easyUI 中重载comboGrid的数据方法
- jquery easyui 中combogrid , datagrid 自定义分页
- easyui DataGrid editors扩展之combogrid ,combogrid 下拉选择后填充 editor 列内容方法
- jQuery EasyUI自定义DataGrid的Editor
- 关于easyui的datagrid与combobox结合使用的问题
- 使用easyUI的combogrid来实现模糊查询,jsp部分
- OM-Internal Sales Order (ISO) Process Flow
- Unity 基础 场景切换
- 华为机试——最高出现频率字符
- mysql权限丢失
- mysql中的结果拼接
- easyui的datagrid中editor和combogrid的结合使用
- socket通信中select函数的使用和解释
- qt-gui的GUI hint参数
- [web安全] 服务器端请求伪造(SSRF)
- 如何去除移动端链接a标签产生带色边框
- Linux 下curl模拟Http 的get or post请求
- [Android Memory] 内存分析工具 MAT 的使用
- 如何在QT里使用Maliit软键盘
- poj--3159--Candies(简单差分约束)