|
已经修正:81050
-修正CheckBoxList和RadioButtonList无法在回发中更新的BUG(破风、吉吉﹑落叶飞尘)。
只所以存在这个BUG并很长时间没有FIX,是因为extjs没有提供复选框列表渲染后更新的接口,所以搜遍整个互联网,有很多提问怎么更新复选框列表的,却没有完美的答案。
作者也是苦思良久,做了各种尝试,最终独辟蹊径:既然extjs没有提供渲染后更新的接口,那就回发后如果数据更新就重新渲染得了。感兴趣的网友可以下载源代码学习。
关键代码:
- x_reloadData: function (name, isradiogroup) {
- var container = this.ownerCt;
- var newConfig = Ext.apply(this.initialConfig, {
- "x_state": this.x_state,
- "items": X.util.resolveCheckBoxGroup(name, this.x_state, null)
- });
- if (container) {
- var originalIndex = container.items.indexOf(this);
- container.remove(this, true);
- if (isradiogroup) {
- container.insert(originalIndex, new Ext.form.RadioGroup(newConfig));
- } else {
- container.insert(originalIndex, new Ext.form.CheckboxGroup(newConfig));
- }
- container.doLayout();
- } else {
- this.destroy();
- if (isradiogroup) {
- new Ext.form.RadioGroup(newConfig);
- } else {
- new Ext.form.CheckboxGroup(newConfig);
- }
- }
- }
复制代码
|
|