easyui-datagrid向后台传送其它的参数

9 篇文章 0 订阅
8 篇文章 0 订阅

一般情况下不会用到,今天遇到了,查了一些资料,下面把实现方法写下来

//easyui带参数向后台发送请求
		$('#grid').datagrid({  	
			  queryParams: {  		
			    nodeID: nodeId  		
			  }  
			});  


下面是我程序中的功能代码,实现的主要功能是,当点击easyui-tree中的一个节点,则与该节点关联的文件,自动勾选上


在easyui-datagrid在加载数据时,第一列为复选框,若没有,则用到下面代码添加,我是业务需要所以添加,若只是传参则有没有都可以

需求是在加载后,与目录关联的文件的复选框要处于选中状态,这里目录如何实现暂时不写,有空写。

页面初始化时加载数据

$(function(){
	//$("body").css({visibility:"visible"});
	//$('.buttonStyle').hover(function(){$(this).removeClass('buttonStyle').addClass('overButtonStyle')},function(){$(this).removeClass('overButtonStyle').addClass('buttonStyle')})
	$('#grid').datagrid({
		fit : true,
		border : false,
		rownumbers : true,
		animate: true,
		striped : true,
		pageList : [ 10, 20, 50 ],
		pagination : true,
		url : "${pageContext.request.contextPath}/document/listAll",
		columns : columns,
		loadMsg:'数据加载中...',
		onLoadSuccess: function (data) {
	            if (data.total == 0) {
	            	$("#centerNews").css("display","none");
	            	$("#showNews").css("display","block")
	            }
	            else {
	            	//对应相应目录,使之勾选上
	            	$.each(data.rows, function(index, item){
	            		if(item.checked){
	            			$('#grid').datagrid('checkRow', index);
	            		}
	            	});
	            	
	            	$("#showNews").css("display","none")
	            	$("#centerNews").css("display","block");
	            }
	        },
	});
	setInterval(checkChooseNode,2000);
});
传递参数到后台代码,我用的是setInterval方法,因为这个页面是用frame做的是个子页面,所以用这个方法定时刷新,跟踪父页面的相关变量的变化

function checkChooseNode(){
	//循环获取父页面中的数据
	var path = $('#path', window.parent.document);
	$("#parents").html(path.html());//与父页面节点的路径同步
	var map = parent.window.getSelectedNodeData();//调用父页面的方法,获取当前选中的节点
	nodeName = map['nodeName'];
	nodeId = map['nodeId'];
	if(notAllowRepeatSubmit != nodeId){
		//带参数向后台发送请求
		$('#grid').datagrid({  	
			  queryParams: {  		
			    nodeID: nodeId  		
			  }  
			});  
	}
	notAllowRepeatSubmit = nodeId;//notAllowRepeatSubmit 这个参数定义的是全局变量,用于防止重复向后台发送请求
}

前台以上就写完了,下面是后台代码

controller层

@RequestMapping(value = "/listAll", method = RequestMethod.POST)
	public ResponseEntity<?> list(JSPPageVo vo) {
		try {
			Map<String, Object> json = documentService.findDocListData(vo);
			return new ResponseEntity<Map<String, Object>>(json, HttpStatus.OK);
		} catch (Exception e) {
			logger.error("资料管理listAll异常:", e);
			throw new RestException(messageSourceHelper.getMessage(e.getMessage()));
		}
	}
JSPPageVo类用来接收参数

import java.io.Serializable;
/**
 * 用于封装JSP datagrid查询/分页查询参数
 */
public class JSPPageVo  implements Serializable{

	private static final long serialVersionUID = 1559887336950341618L;
	
	private String key;
	private String key2;
	private String key3;
	private String nodeID;
	
	
	public String getKey2() {
		return key2;
	}
	public void setKey2(String key2) {
		this.key2 = key2;
	}
	public String getKey3() {
		return key3;
	}
	public void setKey3(String key3) {
		this.key3 = key3;
	}
	private String page;
	private String rows;
	private String startTime;
	private String endTime;
	private String isDeleted;
	
	public String getIsDeleted() {
		return isDeleted;
	}
	public void setIsDeleted(String isDeleted) {
		this.isDeleted = isDeleted;
	}
	public String getStartTime() {
		return startTime;
	}
	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}
	public String getEndTime() {
		return endTime;
	}
	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public String getPage() {
		return page;
	}
	public void setPage(String page) {
		this.page = page;
	}
	public String getRows() {
		return rows;
	}
	public void setRows(String rows) {
		this.rows = rows;
	}
	public String getNodeID() {
		return nodeID;
	}
	public void setNodeID(String nodeID) {
		this.nodeID = nodeID;
	}
	
	

}
service层

@Override
	public Map<String, Object> findDocListData(JSPPageVo vo) {
		List<DocumentVo> dlist = new ArrayList<DocumentVo>();
		String nodeID = vo.getNodeID();
		List<DocumentFolderLink> dfl = documentFolderLinkDao.findListByFolderId(nodeID);
		
		PageRequest pager = buildPageRequest(Integer.parseInt(vo.getPage()), Integer.parseInt(vo.getRows()), "create_time", "DESC");
		Page<Document> result = documentDao.searchByIsDeletedAndPage(pager);
		List<Document> list = result.getContent();
		Map<String, Object> json = new HashMap<String, Object>();
		if(dfl.size() >0){
			//遍历list,关联勾选
			for(Document doc: list){
				int i = 0;//给每条记录做标签
				for(DocumentFolderLink dflk: dfl){
					if(StringUtils.equals(dflk.getDocument_id(), doc.getId())){
						//说明此条数据要加item状态
						DocumentVo dva = documentToVoADD(doc);
						dlist.add(dva); 
						i=1;
					}
				}
				if(i == 0){
					DocumentVo dv = documentToVo(doc);
					dlist.add(dv);
				}
			}
			json.put("rows", dlist);
		}else{
			json.put("rows", list);
		}
		long count = result.getTotalElements();
		json.put("total", count);

		return json;
	}
documentToVoADD方法,添加字段checked的值为true

private DocumentVo documentToVoADD(Document doc) {
		DocumentVo dvo = new DocumentVo();
		dvo.setCreate_time(doc.getCreate_time());
		dvo.setDocument_agree_count(doc.getDocument_disagree_count());
		dvo.setDocument_disagree_count(doc.getDocument_disagree_count());
		dvo.setDocument_download_count(doc.getDocument_download_count());
		dvo.setDocument_download_path(doc.getDocument_local_path());
		dvo.setDocument_icon(doc.getDocument_icon());
		dvo.setDocument_is_new(doc.getDocument_is_new());
		dvo.setDocument_keywords(doc.getDocument_keywords());
		dvo.setDocument_local_path(doc.getDocument_local_path());
		dvo.setDocument_md5_sum(doc.getDocument_md5_sum());
		dvo.setDocument_name(doc.getDocument_name());
		dvo.setDocument_page_count(doc.getDocument_page_count());
		dvo.setDocument_size(doc.getDocument_size());
		dvo.setDocument_summary(doc.getDocument_summary());
		dvo.setDocument_title(doc.getDocument_title());
		dvo.setDocument_type(doc.getDocument_type());
		dvo.setDocument_upload_cdn(doc.getDocument_upload_cdn());
		dvo.setDocument_version(doc.getDocument_version());
		dvo.setId(doc.getId());
		dvo.setIs_deleted(doc.getIs_deleted());
		dvo.setChecked(true);
		dvo.setUpdate_time(doc.getUpdate_time());
		return dvo;
	}
documentToVo方法,正常值转换不对checded设置

private DocumentVo documentToVo(Document doc) {
		DocumentVo dvo = new DocumentVo();
		dvo.setCreate_time(doc.getCreate_time());
		dvo.setDocument_agree_count(doc.getDocument_disagree_count());
		dvo.setDocument_disagree_count(doc.getDocument_disagree_count());
		dvo.setDocument_download_count(doc.getDocument_download_count());
		dvo.setDocument_download_path(doc.getDocument_local_path());
		dvo.setDocument_icon(doc.getDocument_icon());
		dvo.setDocument_is_new(doc.getDocument_is_new());
		dvo.setDocument_keywords(doc.getDocument_keywords());
		dvo.setDocument_local_path(doc.getDocument_local_path());
		dvo.setDocument_md5_sum(doc.getDocument_md5_sum());
		dvo.setDocument_name(doc.getDocument_name());
		dvo.setDocument_page_count(doc.getDocument_page_count());
		dvo.setDocument_size(doc.getDocument_size());
		dvo.setDocument_summary(doc.getDocument_summary());
		dvo.setDocument_title(doc.getDocument_title());
		dvo.setDocument_type(doc.getDocument_type());
		dvo.setDocument_upload_cdn(doc.getDocument_upload_cdn());
		dvo.setDocument_version(doc.getDocument_version());
		dvo.setId(doc.getId());
		dvo.setIs_deleted(doc.getIs_deleted());
		dvo.setUpdate_time(doc.getUpdate_time());
		return dvo;
	}
DocumentVo类比Document实体类多一个checked字段,其它都一样,用的是JPA查询,dao层就不写了





  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
名称 类型 描述 默认值 columns(列) array(数组) 数据表格列配置对象,查看列属性以获取更多细节。 null frozenColumns(固定列) array(数组) 跟列属性一样,但是这些列固定在左边,不会滚动。 null fitColumns(自适应列宽) boolean(布尔型) 设置为true将自动使列适应表格宽度以防止出现水平滚动。 false striped(显示条纹) boolean(布尔型) 设置为true将交替显示行背景。 false method(方法) string(字符串) 请求远程数据的方法类型。 post nowrap(截取) boolean(布尔型) 设置为true,当数据长度超出列宽时将会自动截取。 true idField(id字段) string(字符串) 表明该列是一个唯一列。 null url(超链接) string(字符串) 一个用以从远程站点请求数据的超链接地址。 null loadMsg(载入时信息) string(字符串) 当从远程站点载入数据时,显示的一条快捷信息。 Processing, please wait … pagination(分页) boolean(布尔型) 设置true将在数据表格底部显示分页工具栏。 false rownumbers(行数) boolean(布尔型) 设置为true将显示行数。 false singleSelect(单选模式) boolean(布尔型) 设置为true将只允许选择一行。 false pageNumber(当前页码) number(数字) 当设置分页属性时,初始化分页码。 1 pageSize(每页记录数) number(数字) 当设置分页属性时,初始化每页记录数。 10 pageList(可选择的每页记录数) array 当设置分页属性时,初始化每页记录数列表。 [10,20,30,40,50] queryParams(查询参数) object(对象) 当请求远程数据时,发送的额外参数。 {} sortName(默认排序) string(字符串) 当数据表格初始化时以哪一列来排序。 null sortOrder(排序顺序) string(字符串) 定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。 asc remoteSort(远程排序) boolean(布尔型) 定义是否通过远程服务器对数据排序。 true showFooter(显示行底) boolean(布尔型) 定义是否显示行底(如果是做统计表格,这里可以显示总计等)。 false rowStyler(行样式) function(函数) 返回样式,如:'background:red',function有2个参数: index:行索引,从0开始. row:对应于该行记录的对象。 loadFilter(载入过滤器) function(函数) 返回用以显示的已过滤数据,function有一个参数'data'表示原始数据,你可以将原始数据改变为规范的数据格式,该函数必须返回包含 'total'和'rows'属性的标准数据对象。 editors(编辑模式) object(对象) 定义当编辑一行时的编辑模式。 predefined editors view(视图) object(对象) 定义数据表格的视图。 default view
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值