Ext JS: Formpanel中联动ComboBox赋初值- 驴儿的磨坊- 博客园

假设两个combo,一个省,一个市,作为一个FormPanel的Item。此FormPanel可用来编辑Grid的某条记录,这种情况下要处理初值加载的问题。

前置条件,省autoload: true, 市: false。

正常场景下,选择省才触发时间加载市的数据。 也就是说,初始时市是不加载数据的。这样的设计在新建时没问题,但是在编辑时,需要自动根据省来加载市的数据。否则对市SetValue就缺乏了数据根源。

大概步骤记录一下备忘(肯定有更好的方式,以后再研究):

重载ComboBox的SetValue方法(好像是?有可能记错,反正差不多,懒得翻代码了),在里面的赋值代码之后增加fire一个aftersetvalue事件,然后记得注册此事件。 当然利用现有定义的事件也是可以的,只要是在setValue之后触发的。

在province的combo里添加对aftersetvalue事件的listener, 用来:根据当前value重新load city combo的store.

在city combo的store的load上添加listener, 用来:用form.findField找到city combo,获取它的value。这个value是form在调用自身的SetValue方法时赋值给city combo的。但当时此combo由于没有加载数据,所以当时的SetValue过程不完整。现在要重新setValue一下。

这就差不多了。当然,还要做的事情是上面这套新加的机制必须限制其只在数据加载时起作用,方法就很多了,不赘述。 

 


常用链接

我的标签

  • 尤其注意Demo1E的实现

{zx1}评论

  • 很好。。很好。。。
  • --人防范方法
  • @Zhou Xin
    kao,哈哈
  • --damnedmoon
  • 踩个印......

    再狠狠的踏上一脚!

    新春快乐;-)
  • --Zhou Xin
  • 楼主,能不能将例子发到我邮箱一下,谢谢~~HLDYK@126.com
  • --hldyk
  • @Topshine 嗯,你这种做法基本上就是所有东西都自己实现,代码量会大了些,没办法利用.NET现成的控件实现的功能。实现的好的话就是一个新的GridView控件,不好的话重用度等可能会欠缺。当然...
  • --追萝驴

阅读排行榜

评论排行榜

60天内阅读排行

郑重声明:资讯 【Ext JS: Formpanel中联动ComboBox赋初值- 驴儿的磨坊- 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——