Jquery的Table

袁凌
2023-12-01
function loadDataTable() {
	$("#dataTables-example").dataTable({
		"bServerSide" : true,// 这个用来指明是通过服务端来取数据
		"sAjaxSource" : basePath + "contractListInput/GetTableNew",// 这个是请求的地址
		"fnServerData" : retrieveData,
		'bFilter' : false,
		scrollX : true,
		"sScrollY" : "380px",
		ordering : false,
		"oLanguage" : {
			"sInfo" : "从 _START_ 到 _END_ /共 _TOTAL_ 条数据",
			"oPaginate" : {
				"sFirst" : "首页",
				"sPrevious" : "前一页",
				"sNext" : "后一页",
				"sLast" : "尾页"
			}
		},
		/*
		 * 'aoColumns' : [ { "mDataProp" : "contractid", "sDefaultContent" : "", },
		 * { "mDataProp" : "totalym", "sDefaultContent" : "", },
		 * { "mDataProp" : "stockno", "sDefaultContent" : "", },  {
		 * "mDataProp" : "kiyakuname", "sDefaultContent" : "", },  {
		 * "mDataProp" : "payname", "sDefaultContent" : "", },  {
		 * "mDataProp" : "insurance", "sDefaultContent" : "", },  {
		 * "mDataProp" : "commissionr", "sDefaultContent" : "", }, {
		 * "mDataProp" : "commission", "sDefaultContent" : "", }, {
		 * "mDataProp" : "paymentcnt", "sDefaultContent" : "", }, {
		 * "mDataProp" : "paymentcnt2", "sDefaultContent" : "", },{
		 * "mDataProp" : "productname", "sDefaultContent" : "", }, {
		 * "mDataProp" : "contractymd", "sDefaultContent" : "", }, {
		 * "mDataProp" : "paytype", "sDefaultContent" : "", }, {
		 * "mDataProp" : "dairitenrank", "sDefaultContent" : "", }, {
		 * "mDataProp" : "recruitnm", "sDefaultContent" : "", }, {
		 * "mDataProp" : "recruitid", "sDefaultContent" : "", }, {
		 * "mDataProp" : "status", "sDefaultContent" : "", }, ],
		 */
		"columns" : [ {
			"data" : "contractid",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "totalym",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "stockno",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "kiyakuname",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "payname",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "insurance",
			"sDefaultContent" : "",
		}, 
		{
			"data" : "commissionr",
			"sDefaultContent" : "",
		},
		{
			"data" : "commission",
			"sDefaultContent" : "",
		},
		{
			"data" : "paymentcnt",
			"sDefaultContent" : "",
		},
		{
			"data" : "paymentcnt2",
			"sDefaultContent" : "",
		},
		{
			"data" : "productname",
			"sDefaultContent" : "",
		},
		{
			"data" : "contractymd",
			"sDefaultContent" : "",
		},
		{
			"data" : "paytype",
			"sDefaultContent" : "",
		},
		{
			"data" : "dairitenrank",
			"sDefaultContent" : "",
		},
		{
			"data" : "recruitnm",
			"sDefaultContent" : "",
		},
		{
			"data" : "recruitid",
			"sDefaultContent" : "",
		},
		{
			"data" : "status",
			"sDefaultContent" : "",
		},
		]
	});
}
// 3个参数的名字可以随便命名,但必须是3个参数,少一个都不行
function retrieveData(sSource, aoData, fnCallback) {
	var datepicker = $("#datepicker").val();
	var kiyakuName = $("#kiyakunameSelect").val();
	selectId = $("#selectId").val();
	// getAjax(sSource, {"aoData" : JSON.stringify(aoData111)}, function(data) {
	/*
	 * var data = JSON.stringify(aoData); getAjax(basePath +
	 * "contractListInput/GetTableNew", {"aoData" : data}, function(data) { });
	 */
	// 3个参数的名字可以随便命名,但必须是3个参数,少一个都不行
	$.ajax({
		url : sSource,// 这个就是请求地址对应sAjaxSource
		data : {
			"aoData" : JSON.stringify(aoData),
			datepicker : datepicker,
			contractId : selectId,
			kiyakuName : kiyakuName
		},// 这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数
		type : 'post',
		dataType : 'json',
		async : false,
		success : function(result) {
			fnCallback(result);// 把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
			trClick();
		},
		error : function(msg) {
		}
	});
}
	@RequestMapping(value = "/contractListInput/GetTableNew", method = RequestMethod.POST)
	public @ResponseBody String getTableNew(HttpServletRequest request, HttpServletResponse response,
			HttpSession httpSession) throws JSONException {
		try {
			String sEcho = null;
			int iDisplayStart = 0; // 起始索引
			int iDisplayLength = 0; // 每页显示的行数
			JSONArray jsonarray = new JSONArray(request.getParameter("aoData").toString());
			for (int i = 0; i < jsonarray.length(); i++) {
				JSONObject obj = (JSONObject) jsonarray.get(i);
				if (obj.get("name").equals("sEcho"))
					sEcho = obj.get("value").toString();
				if (obj.get("name").equals("iDisplayStart"))
					iDisplayStart = obj.getInt("value");
				if (obj.get("name").equals("iDisplayLength"))
					iDisplayLength = obj.getInt("value");
			}
			Hashtable<String, String> parm_Key_Value = new Hashtable<String, String>();
			String datepicker = request.getParameter("datepicker");
			String kiyakuName = request.getParameter("kiyakuName");
			String contractId = request.getParameter("contractId");
			try {
				Date date = CommonFunction.FormatDate(datepicker, CommonConstant.YM);
				datepicker = CommonFunction.FormatDate(date, CommonConstant.YYYYMM);

			} catch (ParseException e) {
				return "";
			}
			parm_Key_Value.put("datepicker", datepicker);
			parm_Key_Value.put("kiyakuName", kiyakuName);
			parm_Key_Value.put("contractId", contractId);
			List<Contractdata> list = contractdataService.getList(parm_Key_Value);
			   
			// 生成20条测试数据  
/*			List<String[]> list = new ArrayList<String[]>();  
			for (int i = 0; i < 20; i++) {  
			String[] d = { "co1_data" + i, "col2_data" + i };  
			list.add(d);  
			} */

			Gson gson = new Gson();  
			JSONObject getObj = new JSONObject();
			getObj.put("sEcho", sEcho);// 不知道这个值有什么用,有知道的请告知一下
			getObj.put("iTotalRecords", list.size());// 实际的行数
			getObj.put("iTotalDisplayRecords", list.size());// 显示的行数,这个要和上面写的一样
			// getObj.put("aaData", lst);//要以JSON格式返回
			getObj.put("aaData", gson.toJson(list.subList(iDisplayStart, iDisplayStart + iDisplayLength)));// 要以JSON格式返回
			//getObj.put("aaData", list.subList(iDisplayStart, iDisplayStart + iDisplayLength));// 要以JSON格式返回
			System.out.println(getObj.toString());
			return getObj.toString();

			/*
			 * try { JSONObject myJsonObject = new
			 * JSONObject(request.getParameter("aoData")); if
			 * (myJsonObject.get("name").equals("iDisplayStart")) {
			 * iDisplayStart = myJsonObject.getInt("value"); } if
			 * (myJsonObject.get("name").equals("iDisplayLength")) {
			 * iDisplayLength = myJsonObject.getInt("value"); } } catch
			 * (Exception e) { logger.error(e.getMessage() + "getTable"); String
			 * error = "error" + requestContext.getMessage("W0001").toString();
			 * pw.write(error); }
			 */
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
点击打开链接

 类似资料: