1.下拉小控件是从Treelist、Freeform中分离出来的,功能和Treelist中的一致;
2.“省份”和“城市”有关联性,以下是两种关联处理方案.


方案一:“城市”采用客户端过滤,在选择“省份”的触发事件中对“城市”内容作过滤.
省份:
城市:
方案二:“城市”采用服务器过滤,在选择“省份”的触发事件中修改“城市”的dataURL,强制刷新.
省份:
城市:



在Treelist、Freeform中也有类似的例子,js相关源码如下:
<script>
 //“省份”的下拉的XML文档串
 var xml_prov = '<?xml version="1.0"?>\
<Properties isShowGrid="false" isAutoFitWidth="true" headerHeight="0"></Properties>\
<Cols><Col name="provId" width="0"/><Col name="provText" width="100"/></Cols>\
<Table>\
<TR><td>1</td><td>浙江省</td></TR>\
<TR><td>2</td><td>广东省</td></TR>\
<TR><td>3</td><td>福建省</td></TR>\
<TR><td>4</td><td>江苏省</td></TR>\
</Table></TreeList>';
  
 //采用服务器搜索的“城市”的下拉的XML文档串
 var xml4 = '<TreeList>\
<Properties isShowGrid="false" isAutoFitWidth="true" headerHeight="0"/>\
<Cols><Col name="city" width="100">city</Col></Cols></TreeList>';
 
 function OnReady(id)
 {
  if(id=='AF1')
   AF1.func("BuildTreeList", xml_prov);
  else if(id=='AF2') 
   AF2.func("Filter", "provinceId=''");
  else if(id=='AF3') 
   AF3.func("BuildTreeList", xml_prov);
  else if(id=='AF4') 
   AF4.func("BuildTreeList", xml4);
 }
 function OnEvent(id, Event, p1, p2, p3, p4)
 {
  if(id=='AF1') {
   if( Event == "EditChanged" ) {
    var prov = AF1.func("getValue", "");
    AF2.func("Filter", "provinceId='" +prov+ "'");	//本地过滤
   }
  }
  else if(id=='AF3') {
   if( Event == "EditChanged" ) {
    var prov = AF3.func("getText", "");	//服务器过滤
    var url = "http:∥www.supcan.cn/dotnet/city.aspx?prov=" + prov;
    AF4.func("Load", encodeURI(url));
   }
  }
 }
</script>