|
版本: |
|
小版本号: |
|
|
|
数据库: |
|
服务器操作系统: |
|
应用服务器: |
|
客户端操作系统: |
|
浏览器: |
|
|
|
本帖最后由 腹部流出的肉 于 2014-5-29 17:00 编辑
知道的勿喷 ... ...
先截个图看看
思路:
1、选国家时,任意选择,选择了国家后需要动态控制后面的省和市。
2、选省份时,先判断有没有选择国家。
如果没有选择国家时,省份任意选择;如果选择了国家,省份需是受国家的控制,省份需要控制市。
3、选市时,先判断国家和省份有没有选择,如果都没有选择,市任意选择;如果选择了国家或省份,市需要是国家的市或省的市(即:需要控制市)。
主要触发事件点:onCloseup
数据组件配置:
<data component="/UI/system/components/data.xbl.xml#bizData" id="orgDicUnitAddrCountryBizData"
concept="org_dic" relations="fCode,fName,fOrderNum" limit="-1" order-by="fOrderNum asc"
update-mode="whereVersion" auto-load="false">
<creator id="default37" action="/strplan/org/m05DicManager/logic/action/createOrg_dicAction"/>
<reader id="default38" action="/strplan/org/m05DicManager/logic/action/queryOrg_dicAction"/>
<writer id="default39" action="/strplan/org/m05DicManager/logic/action/saveOrg_dicAction"/>
<filter name="fUnitAddrCountryFilter" id="fUnitAddrCountryFilter"><![CDATA[org_dic.fCategoryID = 'xzqh' and org_dic.fCode like '%000000']]></filter>
</data>
<data component="/UI/system/components/data.xbl.xml#bizData" id="orgDicUnitAddrProvinceBizData"
concept="org_dic" relations="fCode,fName,fOrderNum" limit="-1" order-by="fOrderNum asc"
update-mode="whereVersion" auto-load="false">
<creator id="default40" action="/strplan/org/m05DicManager/logic/action/createOrg_dicAction"/>
<reader id="default41" action="/strplan/org/m05DicManager/logic/action/queryOrg_dicAction"/>
<writer id="default42" action="/strplan/org/m05DicManager/logic/action/saveOrg_dicAction"/>
<filter name="fUnitAddrProvinceFilter" id="fUnitAddrProvinceFilter"><![CDATA[org_dic.fCategoryID = 'xzqh' and org_dic.fCode like '%0000' and not (org_dic.fCode like '%000000')]]></filter>
</data>
<data component="/UI/system/components/data.xbl.xml#bizData" id="orgDicUnitAddrCityBizData"
concept="org_dic" relations="fCode,fName,fOrderNum" limit="-1" order-by="fOrderNum asc"
update-mode="whereVersion" auto-load="false">
<creator id="default43" action="/strplan/org/m05DicManager/logic/action/createOrg_dicAction"/>
<reader id="default44" action="/strplan/org/m05DicManager/logic/action/queryOrg_dicAction"/>
<writer id="default45" action="/strplan/org/m05DicManager/logic/action/saveOrg_dicAction"/>
<filter name="fUnitAddrCityFilter" id="fUnitAddrCityFilter"><![CDATA[org_dic.fCategoryID = 'xzqh' and org_dic.fCode like '%00' and not (org_dic.fCode like '%0000')]]></filter>
</data>
grid组件配置:
<xhtml:div component="/UI/system/components/select.xbl.xml#gridSelect" id="fUnitAddrCountryGridSelect"
ref="data('queryConditionData')/fUnitAddrCountryCode" label-ref="data('queryConditionData')/fUnitAddrCountryName"
value-separator="," label-separator="," ext-separator="," input-changeable="false"
delay-create-grid="true" class="xui-autofill">
<xforms:itemset id="default21" data="orgDicUnitAddrCountryBizData" auto-load-data="false">
<xforms:column ref="fCode" visible="false" id="default48"/>
<xforms:column ref="fName" id="default49"/>
</xforms:itemset>
<xforms:value ref="fCode" id="default20"/>
<xforms:label ref="fName" id="xuiLabel8"/>
</xhtml:div>
<xhtml:div component="/UI/system/components/select.xbl.xml#gridSelect" id="fUnitAddrProvinceGridSelect"
ref="data('queryConditionData')/fUnitAddrProvinceCode" label-ref="data('queryConditionData')/fUnitAddrProvinceName"
value-separator="," label-separator="," ext-separator="," input-changeable="false"
delay-create-grid="true" class="xui-autofill">
<xforms:itemset id="default34" data="orgDicUnitAddrProvinceBizData" auto-load-data="false">
<xforms:column ref="fCode" visible="false" id="default52"/>
<xforms:column ref="fName" id="default53"/>
</xforms:itemset>
<xforms:value ref="fCode" id="default33"/>
<xforms:label ref="fName" id="xuiLabel11"/>
</xhtml:div>
<xhtml:div component="/UI/system/components/select.xbl.xml#gridSelect" id="fUnitAddrCityGridSelect"
ref="data('queryConditionData')/fUnitAddrCityCode" label-ref="data('queryConditionData')/fUnitAddrCityName"
value-separator="," label-separator="," ext-separator="," input-changeable="false"
delay-create-grid="true" class="xui-autofill">
<xforms:itemset id="default36" data="orgDicUnitAddrCityBizData" auto-load-data="false">
<xforms:column ref="fCode" visible="false" id="default54"/>
<xforms:column ref="fName" id="default55"/>
</xforms:itemset>
<xforms:value ref="fCode" id="default35"/>
<xforms:label ref="fName" id="xuiLabel12"/>
</xhtml:div>
JS代码:
function changeCountry(){
//国家编码
var orgDicUnitAddrCountryBizData = justep.xbl("orgDicUnitAddrCountryBizData");
var countryCurrentRowID = orgDicUnitAddrCountryBizData.getCurrentRowId();
var fCountryCode = orgDicUnitAddrCountryBizData.getValue("fCode",countryCurrentRowID);
var fCountryCodePrefix = fCountryCode.substring(0,2);
//alert("fCountryCode:" + fCountryCode + "\r\nffCountryCodePrefix:" + fCountryCodePrefix);
if("" != fCountryCode){
//设置省份
var orgDicUnitAddrProvinceBizData = justep.xbl("orgDicUnitAddrProvinceBizData");
var provinceCurrentRowID = orgDicUnitAddrProvinceBizData.getCurrentRowId();
var provinceFilter = "org_dic.fCode like '" + fCountryCodePrefix + "__0000' and org_dic.fCode <> '" + fCountryCode + "'";
orgDicUnitAddrProvinceBizData.filters.clear();
orgDicUnitAddrProvinceBizData.setFilter("provinceFilter",provinceFilter);
orgDicUnitAddrProvinceBizData.refreshData();
justep.xbl("queryConditionData").setValue("fUnitAddrProvinceCode",orgDicUnitAddrProvinceBizData.getValue("fCode",provinceCurrentRowID));
justep.xbl("queryConditionData").setValue("fUnitAddrProvinceName",orgDicUnitAddrProvinceBizData.getValue("fName",provinceCurrentRowID));
var fProvinceCode = orgDicUnitAddrProvinceBizData.getValue("fCode",provinceCurrentRowID);
var fCountryProvinceCodePrefix = fProvinceCode.substring(0,4);
//设置市
var orgDicUnitAddrCityBizData = justep.xbl("orgDicUnitAddrCityBizData");
var cityCurrentRowID= orgDicUnitAddrCityBizData.getCurrentRowId();
var cityFilter = "org_dic.fCode like '" + fCountryProvinceCodePrefix + "__00' and org_dic.fCode <> '" + fProvinceCode + "'";
orgDicUnitAddrCityBizData.filters.clear();
orgDicUnitAddrCityBizData.setFilter("cityFilter",cityFilter);
orgDicUnitAddrCityBizData.refreshData();
justep.xbl("queryConditionData").setValue("fUnitAddrCityCode",orgDicUnitAddrCityBizData.getValue("fCode",provinceCurrentRowID));
justep.xbl("queryConditionData").setValue("fUnitAddrCityName",orgDicUnitAddrCityBizData.getValue("fName",provinceCurrentRowID));
}
}
function changeProvince(){
//省编码
var orgDicUnitAddrProvinceBizData = justep.xbl("orgDicUnitAddrProvinceBizData");
var provinceCurrentRowID = orgDicUnitAddrProvinceBizData.getCurrentRowId();
var fProvinceCode = orgDicUnitAddrProvinceBizData.getValue("fCode",provinceCurrentRowID);
var fCountryProvinceCodePrefix = fProvinceCode.substring(0,4);
if("" != fProvinceCode){
//设置市
var orgDicUnitAddrCityBizData = justep.xbl("orgDicUnitAddrCityBizData");
var cityCurrentRowID= orgDicUnitAddrCityBizData.getCurrentRowId();
var cityFilter = "org_dic.fCode like '" + fCountryProvinceCodePrefix + "__00' and org_dic.fCode <> '" + fProvinceCode + "'";
orgDicUnitAddrCityBizData.filters.clear();
orgDicUnitAddrCityBizData.setFilter("cityFilter",cityFilter);
orgDicUnitAddrCityBizData.refreshData();
justep.xbl("queryConditionData").setValue("fUnitAddrCityCode",orgDicUnitAddrCityBizData.getValue("fCode",provinceCurrentRowID));
justep.xbl("queryConditionData").setValue("fUnitAddrCityName",orgDicUnitAddrCityBizData.getValue("fName",provinceCurrentRowID));
}
}
调用处:
mainActivity.fUnitAddrCountryGridSelectCloseup = function(event){
changeCountry();
};
mainActivity.fUnitAddrProvinceGridSelectCloseup = function(event){
changeProvince();
};
特别注意点:
如果页面中有重置按钮或其他类似按钮,请重新初始化数据组件:
我的初始化代码:
//初始化单位驻地省数据
function initializeOrgUnitAddrProvinceBizData(){
var orgDicUnitAddrProvinceBizData = justep.xbl("orgDicUnitAddrProvinceBizData");
orgDicUnitAddrProvinceBizData.filters.clear();
orgDicUnitAddrProvinceBizData.setFilter("fUnitAddrProvinceFilter","org_dic.fCategoryID = 'xzqh' and org_dic.fCode like '%0000' and not (org_dic.fCode like '%000000')");
orgDicUnitAddrProvinceBizData.refreshData();
}
//初始化单位驻地市数据
function initializeOrgUnitAddrCityBizData(){
var orgDicUnitAddrCityBizData = justep.xbl("orgDicUnitAddrCityBizData");
orgDicUnitAddrCityBizData.filters.clear();
orgDicUnitAddrCityBizData.setFilter("fUnitAddrCityFilter","org_dic.fCategoryID = 'xzqh' and org_dic.fCode like '%00' and not (org_dic.fCode like '%0000')");
orgDicUnitAddrCityBizData.refreshData();
}
//如有雷同,请给出批评指正,可能国家、省、市在不同地方过滤方式不一样。
国家[两位编码] 省[两位编码] 市[两位编码] 县[两位编码]
00 00 00 00
|
-
实现它们的联动...
评分
-
查看全部评分
|