| 演示功能1：下拉过滤：“省份”和“城市”都是下拉输入，但是二者之间有过滤的逻辑关系，在js中设定了“城市”下拉的过滤表达式

| Example1: “省份”采用dropTreelist 树列表的XML描述文件， 以及它的关联下拉 省份、城市 |  | Example2: “省份”采用dropList 树列表的XML描述文件， 它的关联下拉 "城市" 同左 |
| 1.它的OnReady( )部分：
    AF1.func("Build", "treelist/t16.xml");
    //表达式：cityId列的下拉的provinceId列＝当前行的provId
    var exp = "provinceId=provId@parent \r\n cityId";
    AF1.func("Filter", exp);
2.它的OnEvent( )部分，仅用于清除CityId：
    if(Event=="DropdownSelChanged" && p2=="provId")
     AF1.func("SetCellData", p1 + "\r\n cityId \r\n");
|  | 1.它的OnReady( )部分：
    AF2.func("Build", "treelist/t16_2.xml");
    //表达式：cityId列的下拉的provinceId列＝当前行的provId
    var exp = "provinceId=provId@parent \r\n cityId";
    AF2.func("Filter", exp);
2.它的OnEvent( )部分，仅用于清除CityId：
    if(Event=="EditChanged" && p2=="provId")
     AF2.func("SetCellData", p1 + "\r\n cityId \r\n");

| 演示功能2：“省份”下拉后，“城市”能立即自动选该省份的第一个城市

关键点1. 设置 autoUpdate=true, 使得“省份”下拉选中后，“省份"能及时从输入缓存更新到单元格:

    function OnReady(id)
    {
     ...
     else if(id=='AF3') {
      AF3.func("Build", "treelist/t16.xml \r\n autoUpdate=true");  //注：autoUpdate="true" 也可以直接写在XML文件的 Properties 中
      ...

关键点2. 在事件中，查找该省份的第一个城市:

    function OnEvent(id, Event, p1, p2, p3, p4)
    {
     ...
     else if(id=='AF3') {
      if(Event == "DropdownSelChanged") {
       if(p2 == "provId") {
        var prov = AF3.func("GetCellData", p1 + "\r\n" + p2);   //取得所选的"省份"
        AF3.func("ApplyFilter", p1 + "\r\n cityId");   //强制让过滤立即生效
        var h = AF3.func("GetHandle", "cityId");    //取得“城市”的下拉句柄
        var row = AF3.func(h + "find", "provinceId='" + prov + "'");   //从下拉中找到该省份的第一个城市的行号
        var s = AF3.func(h + "GetCellData", row + " \r\n cityId");   //取得城市
        AF3.func("SetCellData", p1 + "\r\n cityId \r\n" + s );   //置城市
       }
      }...

疑问分析
问一.上述语句第10行，是从下拉树列表中查找“省份”相匹配的行，按理说执行过 ApplyFilter，下拉中的所有行都应该属于这个省份的了，为什么还要执行 Find 函数查找呢？
答.下拉列的 DropTreeList 对象真正被创建的时刻是首次下拉时，如果没有被下拉过，ApplyFilter函数其实是无效的.
问二.在这个例子中，autoUpdate属性置为true有什么用处？
答.autoUpdate=true目的是为了让 DropdownSelChanged 事件在触发前的瞬间，就让下拉选中的数据立即更新到树列表中，就象 EditChanged 事件那样.
我们知道，EditChanged事件通常是在焦点离开的时候触发的，联动下拉的效果没有 DropdownSelChanged 来得直接.
此外应注意：autoUpdate="true"后，用户也就无法用 Esc 键反悔了.