java 数据网格,easyui数据网格

easyui中的数据网格应用

1.页面代码:

class="java" name="code">

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

data-options="singleSelect:true,url:'system/person_testt.do',method:'post',toolbar: '#tb',onClickRow: onClickRow,onRowContextMenu:onRowContextMenu">

编号姓名性别age电话email

[url=javascript:void(0)]插入行[/url]

[url=javascript:void(0)]删除行[/url]

[url=javascript:void(0)]Accept[/url]

[url=javascript:void(0)]Reject[/url]

[url=javascript:void(0)]GetChanges[/url]

var editIndex = undefined;

//判断是否可以编辑

function endEditing(){

if (editIndex == undefined){return true;}

if ($('#dg').datagrid('validateRow', editIndex)){

var ed = $('#dg').datagrid('getEditor', {index:editIndex,field:'id'});

$('#dg').datagrid('endEdit', editIndex);

return true;

} else {

return false;

}

}

//点点击某行时

function onClickRow(index){

if (editIndex != index){

if (endEditing()){

$('#dg').datagrid('selectRow', index).datagrid('beginEdit', index);

editIndex = index;

} else {

$('#dg').datagrid('selectRow', editIndex);

}

}

}

//当点击添加按钮时

function append(){

if (endEditing()){

$('#dg').datagrid('appendRow',{row:{id:uuid}});

editIndex = $('#dg').datagrid('getRows').length-1;

$('#dg').datagrid('selectRow', editIndex)

.datagrid('beginEdit', editIndex);

/* if(editIndex==undefined){

$('#dg').datagrid('appendRow',{row:{id:2,title:2222}});

editIndex = $('#dg').datagrid('getRows').length-1;

$('#dg').datagrid('selectRow', editIndex)

.datagrid('beginEdit', editIndex);

}else{

$('#dg').datagrid('insertRow',{index:editIndex+1,row:{id:3,title:2222}});

$('#dg').datagrid('selectRow', editIndex+1)

.datagrid('beginEdit', editIndex+1);

} */

}

}

function removeit(){

if (editIndex != null){

var selected = $("#dg").datagrid("getSelected");//获取选中行

alert(selected.name);//获取选中行的某个值

}

var json='[{"CityId":18,"CityName":"西安","ProvinceId":27,"CityOrder":1},{"CityId":53,"CityName":"广州","ProvinceId":27,"CityOrder":1}]';

//eval("data="+json);

alert(eval("data="+json));

}

//保存页面属性但不走后台

function accept(){

if (endEditing()){

$('#dg').datagrid('acceptChanges');

}

}

//撤销为保存页面之前的页面,不走后台,只改页面

function reject(){

$('#dg').datagrid('rejectChanges');

editIndex = undefined;

}

function getChanges(){

endEditing();

var rows = $('#dg').datagrid('getChanges');

var effectRow = new Object();

effectRow = JSON.stringify(rows);

alert(effectRow);

}

//右键

function onRowContextMenu(e,rowIndex){

if(window.event.button=="2"){

document.οncοntextmenu= function(){

return false;

};

}

}

2.后台代码:

public void testt() throws IOException{

ServletActionContext.getResponse().setContentType("application/json");

String hql = "from Person where state ='在职'";

pageNumber = (pageNumber == null || pageNumber.equals("0")) ? "1":pageNumber;

//每页显示条数

pageSize = (pageSize == null || pageSize.equals("0")) ? "10":pageSize;

List list=personService.pageByHql(hql, Integer.parseInt(pageNumber), Integer.parseInt(pageSize));

//JsonConfig config=JsonFilter.getFilter(new String[]{"organization","user"});

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

ServletActionContext.getResponse().getWriter().write((JSONArray.fromObject(list, jsonConfig)).toString());

//ServletActionContext.getResponse().getWriter().write((JSONArray.fromObject(list, config)).toString());

ServletActionContext.getResponse().getWriter().close();

}

3.要点:

【1】:页面中的data-options中的url写要请求的后台,先加载页面后请求后台

【2】:请求后台后返回的是json数据,json数据是由后台查询的实体集合转换而来,实体最好不要有主外键关联,如有关联,上方的后台方法中也已经解决,页面中还有点小问题,没法从json中提取json中的数据

【3】:后台代码要注意的是json的转换:

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

ServletActionContext.getResponse().getWriter().write((JSONArray.fromObject(list, jsonConfig)).toString());

4.如果不需要在页面显示主外键关联数据也可以使用以下过滤器:

import net.sf.json.JsonConfig;

import net.sf.json.util.PropertyFilter;

public class JsonFilter {

public static JsonConfig getFilter(final String[] s){

JsonConfig config=new JsonConfig();

config.setJsonPropertyFilter(new PropertyFilter() {

@Override

public boolean apply(Object source, String name, Object value) {

// TODO Auto-generated method stub

if(juge(s, name)){

return true;

}else{

return false;

}

}

public boolean juge(String[] s,String s2){

boolean b=false;

for(String s1:s){

if(s2.equals(s1)){

b=true;

}

}

return b;

}

});

return config;

}

}

【用法:】

JsonConfig config=JsonFilter.getFilter(new String[]{"organization","user"});

ServletActionContext.getResponse().getWriter().write((JSONArray.fromObject(list, config)).toString());

要过滤的字段如果是多个就可以传数组

【注:】:还有待完善,部分内容还没学会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

存储类、作用域、生命周期、链接属性

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 补充:https://blog.csdn.net/oqqHuTu12345678/article/details/71214255 一、概念集合 1、存储类 (1)存储类就是存储类型,也就是描述C语言变…

java动态交叉表,SqlServer如何生成动态交叉表查询

为了说明问题,我们用SqlServer自带的事例数据库(Northwind)来进行验证,所有的例子请放到Northwind中运行,我可能会省略Use语句,所引用的表,都是Northwind中的,下面我就不再说明了这里指的交叉表&#xff0c…

Canvas Clock

这两天在看html5的canvas,实现了上面那个东西 需要注意的地方: 1.canvas的sava()和restore()理解和使用 2.canvas的translate scale rotate ..的使用,每个变化都应该清楚圆心和角度..看:http://blog.sina.com.cn/s/blog_8fab526c01015tqs.htm…

CentOS 6.3 下用ntfs-3g挂载Windows NTFS分区

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下,CentOS 6.3不支持Widows NTFS硬盘分区读写,要想把NTFS格式的磁盘挂载到CentOS 6.3下面需要安装第三方的插件ntfs-3g,这里我们采用编译安装插件。 1、安装编译器&#xff0c…

宏定义与预处理、函数和函数库

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 一、C语言预处理理论 1、由源码到可执行程序的过程 源码.c->(编译)->elf可执行程序源码.c->(编译)->目标文件.o->(链接)->elf可执行程序源码.c->(编译)->汇编文件.S…

PictureBox

代码添加图片: pictureBox1.Image Image.FromFile("F:\360wallpaper_dt.jpg"); http://msdn.microsoft.com/query/dev10.query?appIdDev10IDEF1&lZH-CN&kk(SYSTEM.WINDOWS.FORMS.PICTUREBOX);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERS…

C++的const修饰

2019独角兽企业重金招聘Python工程师标准>>> C的const修饰 ‍const的两个用途‍ (1)可以定义 const 常量 (2)const 可以修饰函数的参数、返回值. const的好处 (1)便于进行类型检查,…

链表(单链表、双链表、内核链表)

以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。 一、链表的引入 1、从数组的缺陷说起 数组有2个缺陷,一个是数组中所有元素的类型必须一致;第二个是数组的元素个数必须事先制定并且一旦指定之后不能更改。数组的第一…

心率变异性 matlab,心率变异性好的功率谱分析方面的问题

本帖最后由 天路 于 2018-2-25 21:16 编辑本人正在学习心率变异性方面的内容,但是按照文献上的方法做出来的结果并不是很理想,文献上说的是心率变异性的频率的范围是0.4以内,但是我做的功率谱上显示频率分布在整个频域内,试了很多…

C#获取Windows下光标位置(转)

使用C#获取光标相对于显示器屏幕的位置&#xff1a; 方式一&#xff1a; 1 [csharp] view plaincopyprint?2 using System; 3 using System.Drawing; 4 using System.Runtime.InteropServices; 5 6 namespace ColorPicker 7 { 8 /// <summary> 9 /// win…

[Android Studio] Android Studio如何提示函数用法

Eclipse有一个很好的功能&#xff0c;就是当你代码调用某个android API时&#xff0c;鼠标移到对应的函数或者方法上&#xff0c;就会自动有一个悬 浮窗提示该函数的说明&#xff08;所包含的参数含义&#xff0c;该方法功能&#xff09;。迁移到Android Studio后&#xff0c;这…

uboot源码——链接脚本u-boot.lds分析

以下内容源于朱有鹏嵌入式的学习与整理&#xff0c;如有侵权&#xff0c;请告知删除。 uboot的链接脚本u-boot.lds&#xff0c;位于uboot根目录下的/board/samsung/x210目录。 脚本内容与分析如下&#xff1a; /** (C) Copyright 2002* Gary Jennejohn, DENX Software Engi…

php 调用 com,PHP调用COM函数

用PHP调用windows中的COM相关函数&#xff1a;函数列表&#xff1a;com_load — 创建一个COM组件的引用。com_invoke — 调用一个COM组件的方法。com_propget — 取一个COM组件的属性的值。com_get — 同上&#xff0c;取一个COM组件的属性的值。com_propput — 赋一个值给一个…

struts2--java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of

这个问题是我碰到的一个比较纠结的问题&#xff0c;如果第一次碰到肯定能让你也很纠结&#xff0c;哈哈 [c-sharp] view plaincopyprint? 01.2010-10-19 18:27:22 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn 02.警告: Error setting expression nnew.nTitle …

情怀真的可以吃~致文青

说实在的&#xff0c;这首歌名如其实的平凡。最标准的Trip-Hop节奏&#xff0c;最普通的四个和弦&#xff0c;最没有惊喜的合成器音色&#xff0c;歌词也是那山那山的波澜不惊。就是这么一首平平无奇的歌&#xff0c;却在首发的7个小时内&#xff0c;狂刷一百万次试听点击。 …

决策树php,决策树模型组合之随机森林与GBDT

前言&#xff1a;决策树这种算法有着很多良好的特性&#xff0c;比如说训练时间复杂度较低&#xff0c;预测的过程比较快速&#xff0c;模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时&#xff0c;单决策树又有一些不好的地方&#xff0c;比如说容易over-fitti…

关于uboot的简介——uboot的目录结构

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 不同版本的uboot&#xff0c;或者同一版本不同人员移植的uboot&#xff0c;目录结构和文件内容都会有所不同&#xff0c;也就是说&#xff0c;可以根据需要去添加、删除或者更改目录结构。在以三星的…

为何不精通C? 03 深入剖析声明

对于复杂的C函数声明&#xff0c;或者被typedef别名后的声明&#xff0c;很多人往往一头雾水。本文主要解析下C语言中声明过程所遵循的原则。 声明 引用《C专家编程》的第三章内容&#xff0c;说明下声明的优先级规则&#xff1a; 声明从它的名字开始读&#xff0c;然后按照优先…

Photoshop绘制植物大战僵尸中的食人花

本人意见&#xff1a;我打算使用本文中的食人花形象作为我的一次讲课中的主要参考。我想说明的是&#xff0c;通过FLASH和PS都能够轻松地绘制出如本文所描述的食人花卡通效果。独立游戏开发者如果安排好时间&#xff0c;完全可以通过1-2个月掌握FLASH和PS绘制&#xff08;想精通…

ios手机 php无法上传文件,【已解决】uni.uploadFile 苹果ios图片上传不成功

安卓正常上传&#xff0c;苹果里我到相册里选了一张20k的图片&#xff0c;服务器都得不到数据&#xff0c;服务器端是PHP&#xff0c;$_FILES居然是空的&#xff0c;下面是简单的代码openPic(){var that this;uni.chooseImage({count: 1,sourceType: [album, camera],sizeType…