我有一个包含一堆下拉菜单的页面作为过滤器。假设我有一个租赁过滤器:类型(公寓,房子等),附近(海洋,山,河,火车,摩天大楼......),城市(纽约,洛杉矶,迈阿密,芝加哥,。 ..)等... 并且每个过滤器都进行回发并重新计算其他过滤器。例如,如果选择:靠近山脉,看迈阿密没有山脉,所以迈阿密和其他城市不会在城市过滤器...到目前为止... ...
我只是将此页面作为iFrame插入到其他页面中......但实际上很难看。 想要使用一些ExtJs对象来帮助我。 有很多网格面板的例子,但没有这样的......请给我一些建议或示例,这将是很好的。感谢。
更多详情:
我发现了一些事情:http://examples.ext.net/#/Form/ComboBox/Ajax_Linked_Combos/
或版本1:http://examples1.ext.net/#/Form/ComboBox/Ajax_Linked_Combos/
这是一个很好的例子。但是在我将代码移动到自己的自定义用户控件之后,请求命中了主页面的on-Load方法和用户控件以及页面的其他生命周期方法,而不仅仅是CitiesRefresh()方法。 ..我不希望这种行为,所以我使用代理<ext:HttpProxy Url="mypage.aspx" Method="POST" />
...
但我没有选定的值,如何发送那些?也许正在使用ExtraParams
,但我不确定。
另一方面,这是多次下拉。所以我想我可以用ddltarget回复一个项目列表......比如:
data.Add(new { Id = id, Name = name, dllTarget= "Cities" });
<Fields>
<ext:RecordField Name="id" Type="String" Mapping="Id" />
<ext:RecordField Name="name" Type="String" Mapping="Name" />
<ext:RecordField Name="ddlTarget" Type="String" Mapping="ddlTarget" />
</Fields>
但如何阅读?当“城市”设置为它时使用ddlTarget。????
<Load Handler="#{Cities}.setValue(#{Cities}.store.getAt(0).get('id'));" /> // doesn't care ddlTarget
答案 0 :(得分:0)
需要为每个Combobox和1个全局商店创建一个商店,以便使用Json进行POST调用并检索数据。我检索的数据是一组集合值:如下所示:
class dataJson{
public List<ItemClass> CollectionType {get; set;}
public List<ItemClass> CollectionNearBy {get; set;}
public List<ItemClass> CollectionCity {get; set;}
}
当数据返回时,只需按需要更新组合框的存储:(加载是全局存储的监听器)
<Load Handler=" #{TypeComboBox}.clearValue();
#{TypeComboBox}.loadData(this.reader.jsonData);
#{NearByComboBox}.clearValue();
#{NearByComboBox}.loadData(this.reader.jsonData);
#{CityComboBox}.clearValue();
#{CityComboBox}.loadData(this.reader.jsonData);" />
每个ComboBox都应按Root
&gt;的属性ext:Store
过滤数据。 Reader
,例如Root
的{{1}}应为NearByComboBox store