📄 typeclass.jsp
字号:
<%@ page contentType="text/html; charset=GBK" %>
<%!
public String getStrTreeOut(String strType,String strDiv,int iAreaPos){
String strResult = "";
String strDataArray[][] = igec.site.base.business.DataUtilBusiness.getValues("SELECT ID,NAME,PARENTID FROM TAB_INDEXTYPE WHERE LAYER=" + strDiv + " AND TYPE=" + strType + " ORDER BY XH");
for(int i=0;i<strDataArray.length;i++){
strResult += "areaArray[" + (iAreaPos++) + "]=new Array('" + strDataArray[i][0] + "','" + strDataArray[i][2] + "','" + strDataArray[i][1] + "');\r\n";
}
return strResult;
}
%>
<%
int iAreaPos = 0;
String strIndexType = igec.util.Tool.getStr(request.getParameter("type"));
//String strParentId=igec.util.Tool.getStr(request.getParameter("parentId")); // 处理具体层的分类(比如只输出中国的省市分类)
if(igec.util.Tool.IsEmpty(strIndexType)) strIndexType = "0";
//先取所有的层数
String strMaxLayer = igec.site.base.business.DataUtilBusiness.getFieldValue("MAX(LAYER)","TAB_INDEXTYPE","WHERE TYPE=" + strIndexType);
if(igec.util.Tool.IsEmpty(strMaxLayer)) strMaxLayer = "0";
int iMaxLayer = Integer.parseInt(strMaxLayer);
out.println("var areaArray = new Array();\r\n");
for(int i=0;i<iMaxLayer;i++){
out.println(getStrTreeOut(strIndexType,String.valueOf(i+1),iAreaPos));
String strSonNum = igec.site.base.business.DataUtilBusiness.getFieldValue("COUNT(*)","TAB_INDEXTYPE","WHERE LAYER=" + String.valueOf(i+1) + " AND TYPE=" + strIndexType);
iAreaPos += Integer.parseInt(strSonNum);
}
iMaxLayer--;
%>
function CLASS_LIANDONG_YAO(array)
{
//数组,联动的数据源
this.array=array;
this.indexName='';
this.obj='';
//设置子SELECT
// 参数:当前onchange的SELECT ID,要设置的SELECT ID
this.subSelectChange=function(selectName1,selectName2)
{
//try
//{
var obj1=document.all[selectName1];
var obj2=document.all[selectName2];
var objName=this.toString();
var me=this;
var initArray = new Array();
for(var i=2;i<this.subSelectChange.arguments.length;i++){
initArray[i-2] = this.subSelectChange.arguments[i];
}
obj1.onchange=function(){
me.optionChange(this.options[this.selectedIndex].value,obj2.id);
for(var i=0;i<initArray.length;i++){
var initObj = document.all[initArray[i]];
initObj.length=0;
initObj.options[0]=new Option("请选择",'');
}
}
}
//设置第一个SELECT
// 参数:indexName指选中项,selectName指select的ID
this.firstSelectChange=function(indexName,selectName)
{
this.obj=document.all[selectName];
this.indexName=indexName;
this.optionChange(this.indexName,this.obj.id)
}
// indexName指选中项,selectName指select的ID
this.optionChange=function (indexName,selectName){
var obj1=document.all[selectName];
var me=this;
obj1.length=0;
obj1.options[0]=new Option("请选择",'');
for(var i=0;i<this.array.length;i++){
if(this.array[i][1]==indexName){
obj1.options[obj1.length]=new Option(this.array[i][2],this.array[i][0]);
}
}
}
}
//这是调用代码
var S_liandong = new CLASS_LIANDONG_YAO(areaArray); //设置数据源
var S_AreaSelect = new Array();
document.writeln("<SELECT ID=\"s_Option_Selct0\" NAME=\"s_Option_Selct0\"><OPTION selected>请选择</OPTION></SELECT>");
S_AreaSelect[0] = "s_Option_Selct0";
<%
for(int i=0;i<iMaxLayer;i++){
%>
S_AreaSelect[<%=i+1%>] = "s_Option_Selct<%=(i+1)%>";
document.writeln("<SELECT ID=\"s_Option_Selct<%=(i+1)%>\" NAME=\"s_Option_Selct<%=(i+1)%>\"><OPTION selected>请选择</OPTION></SELECT>");
<%
}
%>
function initSelectOpt(){
S_liandong.firstSelectChange("0","s_Option_Selct0"); //设置第一个选择框
<%
for(int i=0;i<iMaxLayer;i++){
%>
S_liandong.subSelectChange("s_Option_Selct<%=i%>","s_Option_Selct<%=(i+1)%>"<%for(int n=(i+2);n<=iMaxLayer;n++){out.print(",\"s_Option_Selct" + n + "\"");}%>); //设置子级选择框
<%
}
%>
}
function checkOneSelectOpt(obj){//检查选择框是否输入了对应的值
if(obj.value==""){
if(obj.length<=1){
return 0;
}else
return 1;
}else{
return 0;
}
}
function checkSelectOpt(obj){
setSelectRecValue();
if(checkOneSelectOpt(document.getElementById("s_Option_Selct0"))==0<%for(int i=0;i<iMaxLayer;i++){out.print(" && checkOneSelectOpt(document.getElementById(\"s_Option_Selct" + (i+1) + "\"))==0"); }%>){
return 0;
}else{
return 1;
}
}
var s_ValueRecObj;
function setSelectRecObj(obj){
s_ValueRecObj = document.getElementById(obj);
}
//设置最终的值
function setSelectRecValue(){
for(var i=S_AreaSelect.length;i>0;i--){//倒着找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1){
s_ValueRecObj.value = loObj.value;
break;
}
}
}
//获取当前选择的值(允许不全部选择)
function getSelectCurValue(){
var lsResult = "";
for(var i=S_AreaSelect.length;i>0;i--){//倒着找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1 && loObj.value!=""){
lsResult = loObj.value;
break;
}
}
return lsResult;
}
//获取当前选择的值(必须选择最低一级)
function getMustSelectValue(){
var lsResult = "";
for(var i=S_AreaSelect.length;i>0;i--){//倒着找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1){
lsResult = loObj.value;
break;
}
}
return lsResult;
}
function initSelectDataList(iIndex,strParentValue,strDefaultValue){
var loTargetSelect = document.getElementById("s_Option_Selct"+(iIndex-1));
if(loTargetSelect==null) return;
loTargetSelect.length=0;
loTargetSelect.options[0]=new Option("请选择",'');
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][1]==strParentValue){//同一个父级
loTargetSelect.options[loTargetSelect.length]=new Option(areaArray[i][2],areaArray[i][0]);
if(areaArray[i][0]==strDefaultValue){
loTargetSelect.options[loTargetSelect.length-1].selected = true;
}
}
}
if(strParentValue=="0"){//顶级,不需要再迭代
}else{
initSelectDataList(iIndex-1,getSelctParentId(strParentValue),strParentValue);//继续上一个SELECT框的初始化
}
}
function getSelctParentId(strValue){
var strParentValue = "";
//查出其上级的VALUE,然后设置
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][0]==strValue){
strParentValue = areaArray[i][1];
break;
}
}
return strParentValue;
}
function getSelectValueIndex(strValue,iLayer){
var iReturnLayer = -1;
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][0]==strValue){
iReturnLayer = 1;
if(areaArray[i][1]=="0"){
iLayer = 1;
}else{
iLayer = getSelectValueIndex(areaArray[i][1],iLayer+1) + 1;
}
break;
}else{
}
}
if(iReturnLayer<0) return -1;
return iLayer;
}
function setCurSelectValue(strValue){
if(strValue==""){//没有选择任何值,就使用默认的初始化
return;
}
//初始化
var iCurIndex = getSelectValueIndex(strValue,1);
if(iCurIndex<0) return;
initSelectDataList(iCurIndex,getSelctParentId(strValue),strValue);
//同时需要设置最后一个选择项的下一级
if(iCurIndex<S_AreaSelect.length){//还有下一级
initSelectDataList(iCurIndex+1,strValue,"");
}
}
initSelectOpt();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -