2012-12-15 05:04题主

请教Data Provider中keyMap的用法

不知道是否能直接设置keyMap属性调用键值编辑器中的数据呢?而不用写SQL吗?
2012-12-15 10:06#1
KepMap提供了一种快捷的键值转换机制。在许多数据库系统设计中往往使用编号来代替某一属性,
比如:性别的键值
01代表男,02代表女
又如类别的键值:
101代表类别A,102代表类别B,103代表类别C...
这样你可以打开键值编辑器,配置键值信息
然后使用dataProvider、comboBox等控件时就可以使用键值信息,以方便使用和提高数据库访问效率:
在dataProvider中可进行如下设置:
sqs:select '01' as 'A' from WB_DUAL
keyMap:{A: 'sex',otherFieldName:'otherKeyMapType'}
这样A字段的值同sex类型的键值关联上了,当A字段的值为“01”时,自动转换为“男”。

2012-12-15 10:55#2
看来每天上来都有新知识学习。

这个方法效率不错。
2012-12-15 11:18#3
的确很方便 很高效
2012-12-15 14:36#4
哈哈,明白了,谢谢Chen Jie,这样确实高效多了
2012-12-15 14:54#5
郁闷,之前搞错了,我的字典表已经录入了N多数据,现在还得全部改回来

我把名称理解为显示值咯,误导啊,误导~~~
2012-12-15 19:09#6
使用update直接更新互换一下就可。
2012-12-15 19:17#7
键值映射机制采用静态散列存储结构,具有很高的效率
比起关系数据库动辄需要关联多个表要高效和方便的多
2012-12-16 02:14#8
新问题出现了,这样虽然替换了,但是我在页面上,获取选取的数据行,只能获取到替换后的数据,原始的值却没有了。比起直接renderer的方法貌似有缺失
2012-12-16 04:17#9
嗯嗯,找到解决方案了,可以多字段查询替换,保留原字段
2012-12-16 10:43#10
可以查询两次字段就可,如:
sql: select sex,sex as "SEXNAME" from table
keyMap: {SEXNAME:"sex"}
2012-12-16 11:17#11
好方法,很有用。。。
2012-12-24 09:15#12
学习了
2013-05-10 08:29#13
原来keyMap还可以这样用,又学一个。

返回开发者社区