| 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>