![]() |
演示功能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:“省份”下拉后,“城市”能立即自动选该省份的第一个城市 |
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 ); //置城市 } }...疑问分析