UNPKG

10.7 kBMarkdownView Raw
1# DataTable
2
3## 属性
4
5### \# meta
6
7* 类型:`Object`
8* 说明:获取dataTable的所有字段属性信息
9* 用法:
10
11```
12
13dataTable.meta
14
15```
16
17---
18
19## 方法
20
21### 创建dataTable
22
23#### \# u.DataTable
24
25* 类型:`Function`
26* 说明:创建dataTable
27* 用法:
28
29```
30
31var dataTable = new u.DataTable({
32 meta:{
33 field1:{type:'string'},
34 field2:{type:'date'}
35 }
36})
37
38```
39
40* 参数:
41
42`meta`: 字段信息集合,其中的key为字段名,value为字段属性信息,属性信息可自定义。详情请参考[模型定义](http://tinper.org/dist/kero/docs/datatable.html#模型定义)
43
44
45
46### 行操作
47
48#### \# createEmptyRow
49
50* 类型:`Function`
51* 说明:创建新行,并追加到dataTable行数据集合的最后。
52* 用法:
53
54```
55
56dataTable.createEmptyRow()
57
58```
59
60* 返回值:
61
62`row`: 行对象
63
64
65
66#### \# removeRow
67
68* 类型:`Function`
69* 说明:根据索引值或者指定row对象,删除某一行
70* 用法:
71
72```
73
74dataTable.removeRow(index)
75
76```
77* 参数:
78
79`index` :要删除的行索引或者row对象
80
81
82#### \# removeRowByRowId
83
84* 类型:`Function`
85* 说明:根据行的id来删除行,删除某一行
86* 用法:
87
88```
89
90dataTable.removeRowByRowId(rowId)
91
92```
93* 参数:
94
95`rowId` :要删除的行id
96
97#### \# removeRows
98
99
100* 类型:`Function`
101* 说明:根据索引值删除一组行数据
102* 用法:
103
104```
105
106dataTable.removeRows(indices)
107
108```
109* 参数:
110
111`indices` : 要删除的行索引数组
112
113#### \# removeAllRows
114
115* 类型:`Function`
116* 说明:删除所有行数据
117* 用法:
118
119```
120
121dataTable.removeAllRows()
122
123```
124#### \# getRow
125
126* 类型:`Function`
127* 说明:根据索引获取Row对象
128* 用法:
129
130```
131
132dataTable.getRow(index)
133
134```
135
136* 参数:
137
138`index` :要获取行的索引
139
140
141#### \# getRowByRowId
142
143* 类型:`Function`
144* 说明:根据行id获取Row对象
145* 用法:
146
147```
148dataTable.getRow(rowid)
149
150```
151
152* 参数:
153
154`rowid` :要获取行的rowid
155
156
157#### \# getAllRows
158
159* 类型:`Function`
160* 说明:获取所有的Row对象
161* 用法:
162
163```
164dataTable.getAllRows()
165
166```
167#### \# getFocusRow
168
169* 类型:`Function`
170* 说明:获取焦点行
171* 用法:
172
173```
174dataTable.getFocusRow()
175
176```
177#### \# getCurrentRow
178
179* 类型:`Function`
180* 说明:获取当前行。规则: 焦点行优先,没有焦点行时,取第一选中行
181* 用法:
182
183```
184dataTable.getCurrentRow()
185
186```
187
188#### \# getSelectedRows
189
190* 类型:`Function`
191* 说明:获取所有选中行对象
192* 用法:
193
194```
195dataTable.getSelectedRows()
196
197```
198
199#### \# getChangedRows
200
201* 类型:`Function`
202* 说明:获取所有发生变化的Row对象
203* 用法:
204
205```
206dataTable.getChangedRows()
207
208```
209#### \# getFocusIndex
210
211* 类型:`Function`
212* 说明:获取焦点行对应的index
213* 用法:
214
215```
216dataTable.getFocusIndex()
217
218```
219
220#### \# getSelectedIndexs
221
222* 类型:`Function`
223* 说明:获取选中行的index
224* 用法:
225
226```
227dataTable.getSelectedIndexs()
228
229```
230
231#### \# setRowSelect
232
233* 类型:`Function`
234* 说明:根据索引值,设置行选中
235* 用法:
236
237```
238dataTable.setRowSelect(index)
239
240```
241* 参数:
242
243`index` :要选中的行索引
244
245
246#### \# setRowsSelect
247
248
249* 类型:`Function`
250* 说明:根据一组索引值,设置多行选中
251* 用法:
252
253```
254dataTable.setRowsSelect(indices)
255
256```
257* 参数:
258
259`indices` : 要选中的行索引数组
260
261
262#### \# addRowSelect
263
264
265* 类型:`Function`
266* 说明:在原有选中行的基础行,追加行选中
267* 用法:
268
269```
270dataTable.addRowSelect(index)
271
272```
273* 参数:
274
275`index` :要选中的行索引
276
277
278#### \# addRowsSelect
279
280* 类型:`Function`
281* 说明:在原有选中行的基础行,追加多行选中
282* 用法:
283
284```
285dataTable.addRowsSelect(indices)
286
287```
288* 参数:
289
290`indices` : 要追加的行索引数组
291
292#### \# setAllRowsSelect
293
294* 类型:`Function`
295* 说明:设置所有行为选中状态
296* 用法:
297
298```
299dataTable.setAllRowsSelect()
300
301```
302#### \# setRowUnSelect
303
304* 类型:`Function`
305* 说明:根据索引值,设置某行为非选中状态
306* 用法:
307
308```
309dataTable.setRowUnSelect(index)
310
311```
312* 参数:
313
314`index` :要取消选中的行索引
315
316
317
318#### \# setRowsUnSelect
319
320* 类型:`Function`
321* 说明:根据索引值,设置多行为非选中状态
322* 用法:
323
324```
325dataTable.setRowsUnSelect(indices)
326
327```
328* 参数:
329
330`indices` :行索引数组
331
332
333
334#### \# setAllRowsUnSelect
335
336* 类型:`Function`
337* 说明:设置所有行为非选中状态
338* 用法:
339
340```
341dataTable.setAllRowsUnSelect()
342
343```
344
345#### \# setRowFocus
346
347* 类型:`Function`
348* 说明:根据索引值,设置焦点行
349* 用法:
350
351```
352dataTable.setRowFocus(index)
353
354```
355* 参数:
356
357`index` :要设置焦点行的索引
358
359
360
361#### \# setRowUnFocus
362
363* 类型:`Function`
364* 说明:设置焦点行为非焦点状态
365* 用法:
366
367```
368dataTable.setRowUnFocus()
369
370```
371
372
373### 数据操作
374
375
376#### \# getSimpleData
377
378* 类型:`Function`
379* 说明:获取dataTable中的数据
380* 用法:
381
382```
383
384//默认获取所有数据
385dataTable.getSimpleData()
386
387//获取选中行的字段: field1,field2数据
388dataTable.getSimpleData({type:'select',fields:['field1,field2']})
389
390```
391
392* 参数:
393
394`type`:获取指定类型的数据
395
396| 类型 | 作用 |
397| ------- | --------- |
398| all | 所有行的数据 |
399| current | 当前行的数据 |
400| focus | 焦点行的数据 |
401| select | 被选中的行的数据 |
402| change | 发生改变的行的数据 |
403
404`fields`:获取指定字段的数据
405
406* 返回值:
407
408`datas`: 数据数组
409
410#### \# setSimpleData
411
412* 类型:`Function`
413* 说明:设置dataTable中的数据,将原有数据清除。默认会选中第一行。
414* 用法:
415
416```
417//给dataTable添加数据源,默认会选中第一行
418dataTable.setSimpleData([
419 {"field1":"v1","field2":"v2"},
420 {"field1":"v3","field2":"v4"}
421])
422
423//取消默认的选中行
424dataTable.setSimpleData([
425 {"field1":"v1","field2":"v2"},
426 {"field1":"v3","field2":"v4"}
427],{unSelect:true})
428```
429
430* 参数:
431
432`{Array} data`:数据源
433
434`{Object} options`: 根据参数具体内容来设置数据源。例如:
435`{unSelect:true}`表示不选中第一行。
436
437
438#### \# addSimpleData
439
440* 类型:`Function`
441* 说明:在原有数据基础上,添加数据
442* 用法:
443
444```
445dataTable.addSimpleData([
446 {"field1":"v1","field2":"v2"},
447 {"field1":"v3","field2":"v4"}
448])
449```
450
451#### \# clear
452
453* 类型:`Function`
454* 说明:清除dataTable中的所有数据
455* 用法:
456
457```
458dataTable.clear()
459```
460
461#### \# setValue
462
463* 类型:`Function`
464* 说明:设置当前行的字段值
465* 用法:
466
467```
468datatable.setValue(fieldName, value)
469
470```
471
472* 参数:
473
474`fieldName` : 字段名称
475
476`value`: 字段值
477
478
479
480#### \# getValue
481
482* 类型:`Function`
483* 说明:获取当前行字段的值
484* 用法:
485
486```
487datatable.getValue(fieldName)
488
489```
490
491* 参数:
492
493`fieldName`: 字段名
494
495* 返回值:
496
497`value`: 字段值
498
499
500#### \# ref
501
502* 类型:`Function`
503* 说明:以knockout语法做双向绑定,显示当前行的字段值
504* 用法:
505
506```
507<label data-bind="text: dataTable.ref('fieldName')"></label>
508
509```
510
511* 参数:
512
513`fieldName`: 字段名称
514
515
516### 操作dataTable相关方法
517
518
519#### \# getMeta
520
521* 类型:`Function`
522* 说明:获取字段的属性信息(如:字段类型、精度信息等)
523* 用法:
524
525```
526datatable.getMeta(fieldName, key)
527
528```
529
530* 参数:
531
532`fieldName`: 字段名称
533
534`key` : 属性键值
535
536* 返回值:
537
538`metaValue`: 属性值
539
540
541
542#### \# setMeta
543
544
545* 类型:`Function`
546* 说明:设置字段的属性信息
547* 用法:
548
549```
550datatable.setMeta(fieldName, key, value)
551
552```
553
554* 参数:
555
556`fieldName`: 字段名称
557
558`key`: 属性键值
559
560`value`: 属性值
561
562
563
564
565#### \# setEnable
566
567
568* 类型:`Function`
569* 说明:设置dataTable是否可编辑
570* 用法:
571
572```
573dataTable.setEnable()
574
575```
576
577#### \# isEnable
578
579* 类型:`Function`
580* 说明:获取dataTable是否可编辑。如果传入field则获取对应field是否可编辑
581* 用法:
582
583```
584dataTable.isEnable() 或 dataTable.isEnable('filed1')
585
586```
587
588*参数:
589
590`field` :判断field是否可编辑(可选)
591
592
593## 事件
594
595## on
596
597
598* 类型:`Function`
599* 说明:添加相应的事件监听
600* 用法:
601
602```
603datatable.on(eventName, callBack)
604
605```
606* 参数:
607
608`eventName`: 事件名称
609
610`callBack`: 回调函数
611
612支持的事件类型:
613
614| 事件名称 | 事件说明 | 回调函数接受的参数 |
615| --------------- | --------------- | ---------------------------------------- |
616| valueChange | 字段值发生变化事件 | dataTable:此dataTable对应id;rowId:发生改变行的rowId;field:发生改变的field;oldValue:改变之前的值;newValue:改变之后的值; |
617| xxx.valueChange | 某一字段值发生变化事件 | dataTable:此dataTable对应id;rowId:发生改变行的rowId;field:发生改变的field;oldValue:改变之前的值;newValue:改变之后的值; |
618| select | 行选中事件 | indices:选中行对应的index;rowIds:选中行对应的rowId; |
619| unSelect | 行反选事件 | indices:选反选对应的index;rowIds:选反选对应的rowId; |
620| allSelect | 选中所有行事件 | |
621| allUnselect | 反选所有行事件 | |
622| insert | 插入行事件 | index:插入行对应的index;rows:所插入的行信息; |
623| update | 行修改事件 | index:修改行对应的index;rows:所修改的行信息; |
624| delete | 行删除事件 | indices:删除行对应的index;rowIds:删除行对应的rowId;deleteRows:所删除的行信息; |
625| deleteAll | 删除所有行事件 | |
626| focus | 行获取焦点事件 | index:焦点行对应的index;rowId:焦点行对应的rowId; |
627| unFocus | 行取消焦点事件 | index:取消焦点行对应的index;rowId:取消焦点行对应的rowId; |
628| enableChange | 可修改属性改变事件 | enable:是否可修改; |
629| metaChange | 字段属性信息改变事件 | dataTable:此dataTable对应id;field:发生属性改变的字段;meta:发生改变的属性;oldValue:发生改变之前的值;newValue:发生改变之后的值; |
630| rowMetaChange | Row对象字段属性信息改变事件 | dataTable:此dataTable对应id;field:发生属性改变的字段;meta:发生改变的属性;oldValue:发生改变之前的值;newValue:发生改变之后的值;row:发生属性改变的Row对象 |
631
632
633
634
635