Easyui datagrid editor为combobox时指定数据源

   当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存,此时显示的是value值,而不是text值,这时使用格式化函数解决此问题。

     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
var Address = [{ "value" : "1" , "text" : "CHINA" }, { "value" : "2" , "text" : "USA" }, { "value" : "3" , "text" : "Koren" }];
 
 
function unitformatter(value, rowData, rowIndex) {
     if (value == 0) {
         return ;
     }
 
     for ( var i = 0; i < Address.length; i++) {
         if (Address[i].value == value) {
             return Address[i].text;
         }
     }
}
function GetTable() {
     var editRow = undefined;
 
     $( "#Student_Table" ).datagrid({
         height: 300,
         width: 450,
         title: '学生表' ,
         collapsible: true ,
         singleSelect: true ,
         url: '/Home/StuList' ,
         idField: 'ID' ,
         columns: [[
          { field: 'ID' , title: 'ID' , width: 100 },
             { field: 'Name' , title: '姓名' , width: 100, editor: { type: 'text' , options: { required: true } } },
             { field: 'Age' , title: '年龄' , width: 100, align: 'center' , editor: { type: 'text' , options: { required: true } } },
             { field: 'Address' , title: '地址' , width: 100, formatter: unitformatter, align: 'center' , editor: { type: 'combobox' , options: { data: Address, valueField: "value" , textField: "text" } } }
         ]],
         toolbar: [{
             text: '添加' , iconCls: 'icon-add' , handler: function () {
                 if (editRow != undefined) {
                     $( "#Student_Table" ).datagrid( 'endEdit' , editRow);
                 }
                 if (editRow == undefined) {
                     $( "#Student_Table" ).datagrid( 'insertRow' , {
                         index: 0,
                         row: {}
                     });
 
                     $( "#Student_Table" ).datagrid( 'beginEdit' , 0);
                     editRow = 0;
                 }
             }
         }, '-' , {
             text: '保存' , iconCls: 'icon-save' , handler: function () {
                 $( "#Student_Table" ).datagrid( 'endEdit' , editRow);
 
                 //如果调用acceptChanges(),使用getChanges()则获取不到编辑和新增的数据。
 
                 //使用JSON序列化datarow对象,发送到后台。
                 var rows = $( "#Student_Table" ).datagrid( 'getChanges' );
 
                 var rowstr = JSON.stringify(rows);
                 $.post( '/Home/Create' , rowstr, function (data) {
 
                 });
             }
         }, '-' , {
             text: '撤销' , iconCls: 'icon-redo' , handler: function () {
                 editRow = undefined;
                 $( "#Student_Table" ).datagrid( 'rejectChanges' );
                 $( "#Student_Table" ).datagrid( 'unselectAll' );
             }
         }, '-' , {
             text: '删除' , iconCls: 'icon-remove' , handler: function () {
                 var row = $( "#Student_Table" ).datagrid( 'getSelections' );
 
             }
         }, '-' , {
             text: '修改' , iconCls: 'icon-edit' , handler: function () {
                 var row = $( "#Student_Table" ).datagrid( 'getSelected' );
                 if (row != null ) {
                     if (editRow != undefined) {
                         $( "#Student_Table" ).datagrid( 'endEdit' , editRow);
                     }
 
                     if (editRow == undefined) {
                         var index = $( "#Student_Table" ).datagrid( 'getRowIndex' , row);
                         $( "#Student_Table" ).datagrid( 'beginEdit' , index);
                         editRow = index;
                         $( "#Student_Table" ).datagrid( 'unselectAll' );
                     }
                 } else {
 
                 }
             }
         }, '-' , {
             text: '上移' , iconCls: 'icon-up' , handler: function () {
                 MoveUp();
             }
         }, '-' , {
             text: '下移' , iconCls: 'icon-down' , handler: function () {
                 MoveDown();
             }
         }],
         onAfterEdit: function (rowIndex, rowData, changes) {
             editRow = undefined;
         },
         onDblClickRow: function (rowIndex, rowData) {
             if (editRow != undefined) {
                 $( "#Student_Table" ).datagrid( 'endEdit' , editRow);
             }
 
             if (editRow == undefined) {
                 $( "#Student_Table" ).datagrid( 'beginEdit' , rowIndex);
                 editRow = rowIndex;
             }
         },
         onClickRow: function (rowIndex, rowData) {
             if (editRow != undefined) {
                 $( "#Student_Table" ).datagrid( 'endEdit' , editRow);
 
             }
 
         }
 
     });
}

  效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值