文档章节

poi下拉框,三级联动

dou沙
 dou沙
发布于 2017/07/24 08:59
字数 2558
阅读 22
收藏 1
点赞 0
评论 0

现在网上很多使用poi做excel导出的代码例子,不过我只找到一个三级联动的代码例子,而且几乎所有例子都是默认1,2,3,级菜单名称都不重复的,但是实际上重复很难避免。因为excel的机制是从上到下找匹配的菜单,如果在二级菜单有重复的时候就有可能造成找到的菜单不是我们需要的。所以我用那些现成的例子修改了下,能比较准确的找到对应的菜单,不过这个代码还有bug,就是只能在wps上完美使用,在office上不能下拉三级菜单。

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddressList;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class ExportExcelUtil {
    private static String EXCEL_HIDE_SHEET_NAME = "paraSheet";
    private static String fistName = "";
    private static HSSFCellStyle dataStyle = null;


    //设置下拉列表的内容
    private static String[] companyList = {"一级", "新浪", "腾讯", "网易", "阿里"};
    private static String[] xlList = {"新浪","经理", "美工", "程序员"};
    private static String[] wyList = {"网易", "经理", "美工", "程序员"};
    private static String[] alList = {"阿里", "经理", "美工", "程序员"};
    private static String[] txList = {"腾讯", "经理", "美工", "程序员"};

    private static String[] xljlList = {"新浪","经理", "新浪经理1", "新浪经理2"};
    private static String[] xlmgList = {"新浪","美工", "新浪美工1", "新浪美工2"};
    private static String[] xlcxList = {"新浪","程序员", "新浪程序1", "新浪程序2"};
    private static String[] wyjlList = {"网易","经理", "网易经理1", "网易经理2"};
    private static String[] wymgList = {"网易","美工", "网易美工1", "网易美工2"};
    private static String[] wycxList = {"网易","程序员", "网易程序1", "网易程序2"};
    private static String[] aljlList = {"阿里","经理", "阿里经理1", "阿里经理2", "阿里经理3"};
    private static String[] almgList = {"阿里","美工", "阿里美工1", "阿里美工2", "阿里美工3"};
    private static String[] alcxList = {"阿里","程序员", "阿里程序1", "阿里程序2", "阿里程序3"};
    private static String[] txjlList = {"腾讯","经理", "腾讯经理1", "腾讯经理2", "腾讯经理3"};
    private static String[] txmgList = {"腾讯","美工", "腾讯美工1", "腾讯美工2", "腾讯美工3"};
    private static String[] txcxList = {"腾讯","程序员", "腾讯程序1", "腾讯程序2", "腾讯程序3"};
    private static ArrayList<String[]> levelOne = new ArrayList<String[]>();
    private static ArrayList<String[]> levelTow = new ArrayList<String[]>();
    private static ArrayList<String[]> levelThree = new ArrayList<String[]>();

    private static HSSFWorkbook wb = new HSSFWorkbook();

    public static void main(String[] args) {

        levelOne.add(companyList);

        levelTow.add(xlList);
        levelTow.add(wyList);
        levelTow.add(alList);
        levelTow.add(txList);

        levelThree.add(xljlList);
        levelThree.add(xlmgList);
        levelThree.add(xlcxList);
        levelThree.add(wyjlList);
        levelThree.add(wymgList);
        levelThree.add(wycxList);
        levelThree.add(aljlList);
        levelThree.add(almgList);
        levelThree.add(alcxList);
        levelThree.add(txjlList);
        levelThree.add(txmgList);
        levelThree.add(txcxList);

        //创建内容的集合
        List list1 = new ArrayList();
        list1.add(levelOne);
        list1.add(levelTow);
        list1.add(levelThree);
        //创建公式的集合
        List list2 = new ArrayList();
        list2.add(levelOne);
        list2.add(levelTow);

        HSSFSheet sheet1 = wb.createSheet("sheet1");//工作表对象

        //设置单元格宽度
        setTitleCellStyles(sheet1);
        //设置数据样式
        setDataCellStyles(wb, sheet1);
        //创建一行列头数据
        creatAppRowHead(wb, sheet1);
        //创建隐藏页,flag标识隐藏或展示数据页,false展示,true隐藏
        creatExcelHidePage(wb, false, list1,list2);
        //创建一行数据
        int startRow = 2;
        for (int i = 1; i <= 10; i++) {
            creatAppRow(sheet1, i, "标题"+i, i,startRow);
            startRow ++;
        }

        setDataValidation(wb, 2, new int[]{3, 4, 5});  //设置校验,从第二行开始校验3.4.5列
        FileOutputStream fOut;//输出
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            String format = dateFormat.format(new Date());
            fOut = new FileOutputStream("d:\\result_"+format+".xls ");
            wb.write(fOut);
            fOut.flush();
            fOut.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    /**
     * @param workbook
     * @param flag     创建的参数sheet是否隐藏
     */
    public static void creatExcelHidePage(Workbook workbook, boolean flag, List list1, List list2) {
        Sheet hideInfoSheet = workbook.createSheet(EXCEL_HIDE_SHEET_NAME);
        int row = 0;
        int temp1 = 0;
        int temp2 = 0;
        /**
         * 这里的temp1和temp2需要注意一下,因为实际生产上因为各种原因某些二级菜单下没有三级菜单,所以这里需要判断,否则公式会错误造成某些三级菜单不能下拉
         */
        //创建隐藏页内容
        for (int i = 0; i < list1.size(); i++) {
            List m = (List) list1.get(i);
            for (int j = 0; j < m.size(); j++) {
                if (i == 0) {
                    String[] t = (String[]) m.get(j);
                    fistName = t[0];
                }
                if (m.get(j) != null) {
                    temp1 ++;
                    Row r = hideInfoSheet.createRow(row++);
                    creatRow(r, (String[]) m.get(j));
                }
            }
        }
        row = 1;
        //创建公式
        for (int i = 0; i < list2.size(); i++) {
            List m = (List) list2.get(i);
            for (int j = 0; j < m.size(); j++) {
                String[] temp = (String[]) m.get(j);
                if (temp != null) {
                    temp2 ++;
                    creatExcelName(workbook, temp[0], row++, 2, temp.length);
                }
            }
        }
        //设置三级校验
        for (int i = 2; i <= 20; i++) {
            Name name;
            name = workbook.createName();
            name.setNameName("三级菜单"+i);
            //这里temp2需要+1是因为一级菜单占一行
            name.setRefersToFormula("OFFSET(paraSheet!$C$"+(temp2+1)+",MATCH(sheet1!$C$"+(i)+"&sheet1!$D$"+(i)+",paraSheet!$A$"+(temp2+1)+":$A$"+(temp1)+"&paraSheet!$B$"+(temp2+1)+":$B$"+(temp1)+",0)-1,,,20)");
        }
        workbook.setSheetHidden(workbook.getSheetIndex(EXCEL_HIDE_SHEET_NAME), flag);
    }

    /**
     * 创建excel名称
     *
     * @param workbook
     */
    private static void creatExcelName(Workbook workbook, String cellName, int row, int start, int end) {
        Name name;
        name = workbook.createName();
        name.setNameName(cellName);
        name.setRefersToFormula(getNamestr(cellName, row, start, end));
    }

    private static String getNamestr(String sheetName, int row, int start, int end) {
        String str = "";
        if(row == 0){
            str = EXCEL_HIDE_SHEET_NAME + "!" + "$" + CellReference.convertNumToColString(start) + "$" + row + ":" + "$" + CellReference.convertNumToColString(end - 1) + "$" + row;
        }else{
            str = EXCEL_HIDE_SHEET_NAME + "!" + "$" + CellReference.convertNumToColString(start - 1) + "$" + row + ":" + "$" + CellReference.convertNumToColString(end - 1) + "$" + row;
        }
        //System.out.println(str);
        return  str;
    }

    /**
     * @param wb
     * @param startRow 超始行
     * @param cols     级联的列号数组
     */
    public static void setDataValidation(Workbook wb, int startRow, int[] cols) {
        int sheetIndex = wb.getNumberOfSheets();
        String[] colNames = getColName(cols);
        if (sheetIndex > 0) {
            Sheet sheet = wb.getSheetAt(0);
            DataValidation data_validation = null;
            DataValidation data_validation1 = null;
            DataValidation data_validation2 = null;
            for (int row = startRow; row < 20; row++) {
                data_validation = getDataValidationByFormula(fistName, row, cols[0]);
                data_validation1 = getDataValidationByFormula(fistName, row, cols[1]);
                data_validation2 = getDataValidationByFormula(fistName, row, cols[2]);
                sheet.addValidationData(data_validation);
                sheet.addValidationData(data_validation1);
                sheet.addValidationData(data_validation2);
                //这里设置的数据有效性校验能在wps上生效
                for (int i = 0; i < colNames.length; i++) {
                    if (i > 0 && i< colNames.length - 1){
                        data_validation = getDataValidationByFormula("INDIRECT($" + colNames[i-1] + "$" + row + ")", row, cols[i]);
                        sheet.addValidationData(data_validation);
                    }
                    if (i == colNames.length - 1) {
                        DataValidation data_validation_list2 = getDataValidationByFormula("三级菜单"+row, row, cols[i]);
                        sheet.addValidationData(data_validation_list2);
                    }
                }
            }
        }
    }

    /**
     * @param formulaString      公式
     * @param naturalRowIndex    验证的行
     * @param naturalColumnIndex 验证的列
     * @return
     */
    public static DataValidation getDataValidationByFormula(String formulaString, int naturalRowIndex, int naturalColumnIndex) {
        //加载下拉列表内容
        DVConstraint constraint = DVConstraint.createFormulaListConstraint(formulaString);
        //设置数据有效性加载在哪个单元格上。
        //四个参数分别是:起始行、终止行、起始列、终止列
        int firstRow = naturalRowIndex - 1;
        int lastRow = naturalRowIndex - 1;
        int firstCol = naturalColumnIndex - 1;
        int lastCol = naturalColumnIndex - 1;
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
        //数据有效性对象
        DataValidation data_validation = new HSSFDataValidation(regions, constraint);
        //设置输入信息提示信息
        //data_validation.createPromptBox("提示", "请使用下拉方式选择合适的值!");
        //设置输入错误提示信息
        data_validation.createErrorBox("提示", "你输入的值不合法,请下拉选择合适的值!");
        return data_validation;
    }

    static String[] getColName(int[] colIndex) {
        String[] colName = new String[colIndex.length];
        for (int i = 0; i < colIndex.length; i++) {
            colName[i] = CellReference.convertNumToColString(colIndex[i] - 1);
        }
        return colName;
    }


    /**
     * 创建一列应用列头
     * 使用富文本(HSSFRichTextString),这样能在同一单元格内设置多种不同字体
     * @param userinfosheet1
     */
    public static void creatAppRowHead(HSSFWorkbook workbook, HSSFSheet userinfosheet1) {
        HSSFCellStyle titleStyle = workbook.createCellStyle();
        //设置边框
        titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        titleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        titleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
        titleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
        //设置背景色
        titleStyle.setFillForegroundColor(HSSFColor.WHITE.index);
        titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //设置居中
        titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //设置两种字体颜色
        HSSFFont redFont = (HSSFFont) workbook.createFont();
        redFont.setFontName("宋体");
        redFont.setFontHeightInPoints((short) 11); //设置字体大小
        redFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
        redFont.setColor(HSSFColor.RED.index);// 红色
        HSSFFont blackFont = (HSSFFont) workbook.createFont();
        blackFont.setFontName("宋体");
        blackFont.setFontHeightInPoints((short) 11); //设置字体大小
        blackFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
        blackFont.setColor(HSSFColor.BLACK.index);// 黑色
        //设置自动换行
        titleStyle.setWrapText(true);

        HSSFRow row = userinfosheet1.createRow(0);
        row.setHeight((short) 550);
        //0.序号
        HSSFCell serialNumberCell = row.createCell(0);
        HSSFRichTextString richString = new HSSFRichTextString("*序号");
        richString.applyFont(0, 1, redFont);
        richString.applyFont(1, 3, blackFont);
        serialNumberCell.setCellValue(richString);
        serialNumberCell.setCellStyle(titleStyle);

        //1.标题
        HSSFCell titleCell = row.createCell(1);
        richString = new HSSFRichTextString("*标题");
        richString.applyFont(0, 1, redFont);
        richString.applyFont(1, 3, blackFont);
        titleCell.setCellValue(richString);
        titleCell.setCellStyle(titleStyle);

        //3.一级项目
        HSSFCell systemCell = row.createCell(2);
        richString = new HSSFRichTextString("*一级菜单");
        richString.applyFont(0, 1, redFont);
        richString.applyFont(1, 5, blackFont);
        systemCell.setCellValue(richString);
        systemCell.setCellStyle(titleStyle);

        //4.二级项目
        HSSFCell groupCell = row.createCell(3);
        richString = new HSSFRichTextString("*二级菜单");
        richString.applyFont(0, 1, redFont);
        richString.applyFont(1, 5, blackFont);
        groupCell.setCellValue(richString);
        groupCell.setCellStyle(titleStyle);

        //4.三级项目
        HSSFCell nameCell = row.createCell(4);
        richString = new HSSFRichTextString("*三级菜单");
        richString.applyFont(0, 1, redFont);
        richString.applyFont(1, 5, blackFont);
        nameCell.setCellValue(richString);
        nameCell.setCellStyle(titleStyle);
    }

    /**
     * 创建一列应用数据
     *
     * @param userinfosheet1
     * @param startRow
     */
    public static void creatAppRow(HSSFSheet userinfosheet1, int num, String titels, int naturalRowIndex, int startRow) {

        HSSFRow row = userinfosheet1.createRow(naturalRowIndex);
        row.setHeight((short) 550);

        //0.序号
        HSSFCell serialNumberCell = row.createCell(0);
        serialNumberCell.setCellValue(num + "");
        serialNumberCell.setCellStyle(dataStyle);

        //1.标题
        HSSFCell titelCell = row.createCell(1);
        titelCell.setCellValue(titels);
        titelCell.setCellStyle(dataStyle);

        //2.一级
        HSSFCell proposeTimeCell = row.createCell(2);
        proposeTimeCell.setCellValue("请选择");
        proposeTimeCell.setCellStyle(dataStyle);

        //3.二级
        HSSFCell systemCell = row.createCell(3);
        systemCell.setCellValue("请选择");
        systemCell.setCellStyle(dataStyle);

        //4.三级
        HSSFCell groupCell = row.createCell(4);
        groupCell.setCellValue("请选择");
        groupCell.setCellStyle(dataStyle);

        //这里设置的数据有效性校验能在office生效
        for (int i = startRow; i < 20; i++) {
            //二级项目是根据一级项目选择
            DataValidation data_validation_list2 = getDataValidationByFormula("INDIRECT($C$"+i+")",i,4);
            userinfosheet1.addValidationData(data_validation_list2);

            //三级项目是根据额外的一条公式选择
            DataValidation data_validation_list3 = getDataValidationByFormula("三级菜单"+i,i,5);
            userinfosheet1.addValidationData(data_validation_list3);

        }
    }




    /**
     * 创建一行数据
     *
     * @param currentRow
     * @param textList
     */
    private static void creatRow(Row currentRow, String[] textList) {
        if (textList != null && textList.length > 0) {
            int i = 0;
            for (int j = 0; j < textList.length; j++) {
                Cell userNameLableCell = currentRow.createCell(i++);
                userNameLableCell.setCellValue(textList[j]);
            }
        }
    }


    /**
     * 单元格宽度
     * @param sheet
     */
    public static void setTitleCellStyles(HSSFSheet sheet) {

        //设置列宽 ,第一个参数代表列id(从0开始),第2个参数代表宽度值
        sheet.setColumnWidth(0, 2500);
        sheet.setColumnWidth(1, 3000);
        sheet.setColumnWidth(2, 4000);
        sheet.setColumnWidth(3, 4000);
        sheet.setColumnWidth(4, 4000);
    }

    /**
     * 数据样式
     *
     * @param workbook
     * @param sheet
     */
    public static void setDataCellStyles(HSSFWorkbook workbook, HSSFSheet sheet) {
        dataStyle = workbook.createCellStyle();

        //设置边框
        dataStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        dataStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        dataStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
        dataStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
        //设置背景色
        dataStyle.setFillForegroundColor(HSSFColor.WHITE.index);
        dataStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //设置居中
        dataStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //设置字体
        HSSFFont font = workbook.createFont();
        font.setFontName("宋体");
        font.setFontHeightInPoints((short) 11); //设置字体大小
        dataStyle.setFont(font);//选择需要用到的字体格式
        //设置自动换行
        dataStyle.setWrapText(true);
    }
}

我在实际生产上是这样生成隐藏页的数据的

private void creatExcelHidePage(HSSFWorkbook workbook, boolean flag) {
		//获取所有步骤信息
		Map<String, List<ProjectEntity>> level = projectElementService.findAllProject();
		ArrayList<String[]> levelOne = new ArrayList<String[]>();
		ArrayList<String[]> levelTow = new ArrayList<String[]>();
		ArrayList<String[]> levelThree = new ArrayList<String[]>();

		ArrayList<String> levelOneArray = new ArrayList<String>();
		levelOneArray.add("一级项目");
		List<ProjectEntity> level1 = level.get("level1");
		List<ProjectEntity> level2 = level.get("level2");
		List<ProjectEntity> level3 = level.get("level3");
		for (int i = 0; i < level1.size(); i++) {
			levelOneArray.add(level1.get(i).getProjectName());

			ArrayList<String> levelTwoArray = new ArrayList<String>();
			levelTwoArray.add(level1.get(i).getProjectName());
			String[] twoArr = null;
			for (int j = 0; j < level2.size(); j++) {
				if (level1.get(i).getProjectId().equals(level2.get(j).getParentId())) {
					levelTwoArray.add(level2.get(j).getProjectName());	//+level2.get(j).getProjectId()level1.get(i).getProjectName()++"_"+i
					twoArr = new String[levelTwoArray.size()];
					levelTwoArray.toArray(twoArr);
				}
				//System.out.println(Arrays.toString(threeArr));
			}
			levelTow.add(twoArr);
			//System.out.println(Arrays.toString(twoArr));
		}

		for (int i = 0; i < level2.size(); i++) {
			ArrayList<String> levelThreeArray = new ArrayList<String>();
			//levelThreeArray.add(level1.get(i).getProjectName());
			for (int j = 0; j < level1.size(); j++) {
				if(level2.get(i).getParentId().equals(level1.get(j).getProjectId())){
					levelThreeArray.add(level1.get(j).getProjectName());	//++"_"+j    level2.get(i).getProjectName()
				}
			}
			String levelTwoprojectName = level2.get(i).getProjectName();

			levelThreeArray.add(levelTwoprojectName);	//+level2.get(i).getProjectId()
			String[] threeArr = null;
			for (int k = 0; k < level3.size(); k++) {
				if (level2.get(i).getProjectId().equals(level3.get(k).getParentId())) {
					levelThreeArray.add(level3.get(k).getProjectName());
					threeArr = new String[levelThreeArray.size()];
					levelThreeArray.toArray(threeArr);
				}
			}
			levelThree.add(threeArr);
		}
		String[] oneArr = new String[levelOneArray.size()];
		levelOneArray.toArray(oneArr);
		levelOne.add(oneArr);

		List resultList = new ArrayList();
		resultList.add(levelOne);
		resultList.add(levelTow);
		resultList.add(levelThree);
		List resultList1 = new ArrayList();
		resultList1.add(levelOne);
		resultList1.add(levelTow);
		//System.out.println(Arrays.toString(oneArr));
		Sheet hideInfoSheet = workbook.createSheet(ExcelExportUtil.EXCEL_HIDE_SHEET_NAME);//隐藏一些信息
		//创建参数sheet 里面内容
		int row = 0;
		int temp1 = 0;
		int temp2 = 0;
		for (int i = 0; i < resultList.size(); i++) {
			List m = (List) resultList.get(i);
			for (int j = 0; j < m.size(); j++) {
				if (i == 0) {
					String[] t = (String[]) m.get(j);
					ExcelExportUtil.fistName = t[0];
				}
				if (m.get(j) != null) {
					temp1 ++;
					Row r = hideInfoSheet.createRow(row++);
					ExcelExportUtil.creatRow(r, (String[]) m.get(j),workbook);
				}
			}
		}
		row = 1;
		for (int i = 0; i < resultList1.size(); i++) {
			List m = (List) resultList1.get(i);
			for (int j = 0; j < m.size(); j++) {
				String[] temp = (String[]) m.get(j);
				if (temp != null) {
					temp2 ++;
					ExcelExportUtil.creatExcelName(workbook, temp[0], row++, 2, temp.length);
				}
			}
		}

		for (int i = 4; i <= 200; i++) {
			Name name;
			name = workbook.createName();
			name.setNameName("三级项目"+i);
			name.setRefersToFormula("OFFSET(paraSheet!$C$"+(temp2+1)+",MATCH(sheet1!$C$"+(i)+"&sheet1!$D$"+(i)+",paraSheet!$A$"+(temp2+1)+":$A$"+(temp1)+"&paraSheet!$B$"+(temp2+1)+":$B$"+(temp1)+",0)-1,,,30)");
		}

		workbook.setSheetHidden(workbook.getSheetIndex(ExcelExportUtil.EXCEL_HIDE_SHEET_NAME), flag);
	}

 

© 著作权归作者所有

共有 人打赏支持
dou沙
粉丝 1
博文 2
码字总数 5730
作品 0
肇庆
reactjs省市县三级联动

如何使用ReactJs+Relay+GraphQL,实现省市县三级联动的组件? 1、使用json模拟服务器端的数据 [ { "id": "1001", "name": "北京市", "children": [ { "id": "1001001", "name": "北京市", "c...

liyuanyuan ⋅ 2016/10/14 ⋅ 0

jQuery 插件库--jQuery Widgets

一套基于 jQuery 或 JavaScript 的插件库 — 包含:轮播、标签页、滚动条、下拉框、对话框、搜索提示、城市选择(城市三级联动)、日历等组件。 部分运行效果: 滚动条 城市三级联动 对话框...

一个路人甲 ⋅ 2016/11/22 ⋅ 2

dwz 三级联下拉菜单怎么赋值(combox组件)

用DWZ做的省市县三级联动下拉框,保存值之后编辑的时候怎么赋值聚焦呢

纯24K爷们儿 ⋅ 2014/05/14 ⋅ 2

基于jQuery+JSON的省市区三级地区联动

查看演示:http://www.helloweba.com/demo/cityselect/ 源码下载:http://files.cnblogs.com/files/huangcong/cityselect.rar 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系...

老朱教授 ⋅ 2017/10/01 ⋅ 0

三级联动下拉列表的问题

各位大神,菜菜我又来了,学艺不精还请各位多多帮忙,这次是联动下拉列表,三级联动,现在联动显示数据没有问题,就是三个下拉列表全部选完一遍后,我改变了一下第一个下拉列表的值,这时第二...

求学Sir ⋅ 2017/01/21 ⋅ 1

三级联动的下拉框动态赋值并选中,只有第一个能正确选中,后两个联动的无法被选中

$("#s_province option[value='"+tem0+"']").attr("selected",true) 用这段代码,只能选中联动的第一个下拉框,如果动态的赋值给后面的下拉框...

王瑞琦 ⋅ 2015/12/04 ⋅ 2

DWZ 中如何在页面加载完成后,第一级下拉框中就有值呢?

DWZ 中如何在页面加载完成后,第一级下拉框中就有值呢?二级和三级的都知道怎么获取,因为只要一级的改变选项,二级就已经联动了;但是一级的不知道怎么加载。 HTML代码如下: 所属部门:...

THEONE1 ⋅ 2013/06/18 ⋅ 4

jquery带有参照数据的效果处理

几个简单小例子: 1.入门二级联动 2.二级联动 3.三级联动 4.简繁体转换 5.简单答题 6.创建课程表模板 这些例子有个共同的原理,就是有一个写好的参考数据模型,通过这个参考处理!什么参考,...

透笔度 ⋅ 2015/09/18 ⋅ 0

无限级联动下拉框地区分类选择的实现--超傻瓜,超弱智式

一、功能概要 不多说,先上图: 这种地址下来选择框经常都会在开发中遇到,那么如果我们对这种地址的选择方式提出两个要求: 1. 选择的地区信息是需要动态变更的,即是可以通过后台添加地区信...

Jay-zone ⋅ 2012/09/14 ⋅ 9

360UI 界面框架 最完美的select下拉框美化

最完美的select下拉框美化 很多人为select的诸多不完善而头痛,如无法自定义样式、IE6中无法被浮动层遮住等等。下面介绍一款堪称最完美的下拉框组件:360UI即QUI下拉框( ) 特点1:美化的并...

阿东2020 ⋅ 2013/05/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部