- 浏览: 228465 次
- 来自: ...
文章分类
最新评论
-
l932:
下载了源代码,导入工程,启动之后,表格只显示“Processi ...
jquery grid插件 Flexigrid + servlet -
郑钻哲:
您好,请问可以留下您的QQ吗?有问题请教。我在html的inp ...
node.js install postgreSQL 初体验 -
lsioui:
...
jquery 日历 任务 类似 google 日历 -
java_MagicWang:
chinajj 写道 //add search boxg. ...
jquery grid插件 Flexigrid + servlet -
hanguokai1987:
很好!但是代码只能借鉴!挺不错的!
jquery grid插件 Flexigrid + servlet
前些日子写了个源于jquery grid插件Flexigrid 算不上例子的一片文章。
为了能更快的使用这个东东 。。 今天做了一个相对比较详细的例子.
对一个工作信息表操控的例子。
第一步:创建数据库
第二步:下载Flexigrid 插件
http://www.webplicity.net/flexigrid/
第三步:解压下载后的zip文件到你的web工程中
第四步:编写jsp代码
以上代码相关参数讲解:
第五步:后台访问数据库代码 以及 生成json字符串代码
以上代码测试后得到的json字符串
第六步:后台servlet处理
第七步:测试你的代码
第九步:本例代码下载 :) 祝你好运
http://ynial.iteye.com/upload/attachment/37213/beaacf16-831a-33b2-b960-09d028d13668.rar
//add search box
g.sDiv.className = 'sDiv';
/* ********************************* 原来的代码注释掉
sitems = p.searchitems;
var sopt = "";
for (var s = 0; s < sitems.length; s++)
{
if (p.qtype=='' && sitems[s].isdefault==true)
{
p.qtype = sitems[s].name;
sel = 'selected="selected"';
} else sel = '';
sopt += "<option value='" + sitems[s].name + "' " + sel + " >" + sitems[s].display + " </option>";
}
if (p.qtype=='') p.qtype = sitems[0].name;
$(g.sDiv).append("<div class='sDiv2'>Quick Search <input type='text' size='30' name='q' class='qsbox' /> <select name='qtype'>"+sopt+"</select> <input type='button' value='Clear' /></div>"); $('input[name=q],select[name=qtype]',g.sDiv).keydown(function(e){if(e.keyCode==13) g.doSearch()});
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; g.doSearch(); });
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; });
原来的代码注释掉 ********************************** */
$(g.sDiv).append("<div class='sDiv2'><form id='searchForm'></form></div>");
p.searchitems(g);
$(g.bDiv).after(g.sDiv);
这里需要注意:<form id='searchForm'></form> 的内容需要另外填充进去,我的做法是页面其它部分的js再生成一个ajax请求,把我后台设定好的搜索项目表单域组合填充进去。
能告诉我jquery.field.js你是怎么改的吗?我遇到了这个问题,不能以对象的方式传,QQ416263135,非常感谢
//add search box
g.sDiv.className = 'sDiv';
/* ********************************* 原来的代码注释掉
sitems = p.searchitems;
var sopt = "";
for (var s = 0; s < sitems.length; s++)
{
if (p.qtype=='' && sitems[s].isdefault==true)
{
p.qtype = sitems[s].name;
sel = 'selected="selected"';
} else sel = '';
sopt += "<option value='" + sitems[s].name + "' " + sel + " >" + sitems[s].display + " </option>";
}
if (p.qtype=='') p.qtype = sitems[0].name;
$(g.sDiv).append("<div class='sDiv2'>Quick Search <input type='text' size='30' name='q' class='qsbox' /> <select name='qtype'>"+sopt+"</select> <input type='button' value='Clear' /></div>"); $('input[name=q],select[name=qtype]',g.sDiv).keydown(function(e){if(e.keyCode==13) g.doSearch()});
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; g.doSearch(); });
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; });
原来的代码注释掉 ********************************** */
$(g.sDiv).append("<div class='sDiv2'><form id='searchForm'></form></div>");
p.searchitems(g);
$(g.bDiv).after(g.sDiv);
这里需要注意:<form id='searchForm'></form> 的内容需要另外填充进去,我的做法是页面其它部分的js再生成一个ajax请求,把我后台设定好的搜索项目表单域组合填充进去。
为了能更快的使用这个东东 。。 今天做了一个相对比较详细的例子.
对一个工作信息表操控的例子。
第一步:创建数据库
/* MySQL Data Transfer Source Host: localhost Source Database: spiderdata Target Host: localhost Target Database: spiderdata Date: 2008/9/2 10:42:51 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for job_info1 -- ---------------------------- CREATE TABLE `job_info1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_name` varchar(255) DEFAULT NULL, `company_email` text, `date` varchar(255) DEFAULT NULL, `work_address` varchar(255) DEFAULT NULL, `number` varchar(255) DEFAULT NULL, `work_limit` varchar(255) DEFAULT NULL, `level` varchar(255) DEFAULT NULL, `salary` varchar(255) DEFAULT NULL, `job_id` varchar(255) DEFAULT NULL, `description` mediumtext, `language` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `jobid` (`job_id`) ) ENGINE=InnoDB AUTO_INCREMENT=42234 DEFAULT CHARSET=utf8;sql 文件在附件中
第二步:下载Flexigrid 插件
http://www.webplicity.net/flexigrid/
第三步:解压下载后的zip文件到你的web工程中
第四步:编写jsp代码
<%@page contentType="text/html; charset=utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Flexigrid测试</title> <link rel="stylesheet" href="style.css" /> <link rel="stylesheet" type="text/css" href="css/flexigrid/flexigrid.css"> <script type="text/javascript" src="lib/jquery/jquery.js"></script> <script type="text/javascript" src="flexigrid.js"></script> </head> <body> <table id="flex1" style="display: none"></table> <script type="text/javascript"> $("#flex1").flexigrid ( { url: 'http://localhost:8080/Flexigrid/DBServlet', dataType: 'json', colModel : [ {display: 'ID', name : 'jobid', width : 10, sortable : true, align: 'center'}, {display: '职位名称', name : 'job_name', width : 180, sortable : true, align: 'left'}, {display: '工作地点', name : 'work_address', width : 80, sortable : true, align: 'left'}, {display: '工作年限', name : 'work_limit', width : 80, sortable : true, align: 'left'}, {display: '薪金', name : 'salary', width : 80, sortable : true, align: 'left'} ], buttons : [ {name: 'Add', bclass: 'add', onpress : test}, {name: 'Delete', bclass: 'delete', onpress : test}, {separator: true} ], searchitems : [ {display: '职位名称', name : 'jobtitle'}, {display: '地点', name : 'workplace', isdefault: true} ], usepager: true, title: '最新职位', useRp: true, rp: 15, showTableToggleBtn: true, width: 700, height: 200 } ); function test(com,grid) { if (com=='Delete') { confirm('Delete ' + $('.trSelected',grid).length + ' items?') } else if (com=='Add') { alert('Add New Item'); } } </script> </body>
以上代码相关参数讲解:
url: 'http://localhost:8080/Flexigrid/DBServlet' ajax访问的url
dataType: 'json', 响应的数据类型
colModel [....] 表格中显示列的设置....
buttons 按钮设置 根据业务不同 添加适合业务的按钮
searchitems 查询下拉列表中的选项设置
usepager: true, 是否分页
title: '最新职位', 表头
useRp: true, 用户自定义分页
rp: 15, 每页显示多少数据
showTableToggleBtn: true, 略
width: 700, 略
height: 200 略
第五步:后台访问数据库代码 以及 生成json字符串代码
package com.url.db; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import com.url.ajax.json.JSONObject; public class DBTest { /** * 简单的数据库连接 * @return */ public static DataSource setupDataSource() { BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUsername("root"); ds.setPassword("password"); ds.setUrl("jdbc:mysql://localhost:3306/spiderdata?useUnicode=true&characterEncoding=utf-8"); return ds; } /** * 按相关条件查询数据 * @param startIndex * @param maxResult * @return */ @SuppressWarnings("unchecked") public List getJobInfo(int startIndex, int maxResult) { QueryRunner queryRunner = new QueryRunner(setupDataSource()); String sql = "select * from job_info1 limit ?, ?"; List joblist = null; try { joblist = (List)queryRunner.query(sql, new Object[]{startIndex, maxResult}, new MapListHandler()); } catch (SQLException e) { e.printStackTrace(); } return joblist; } /** * 计算总数据量 * @return */ @SuppressWarnings("unchecked") public long getJobCount() { String sql = "select count(*) as num from job_info1"; QueryRunner queryRunner = new QueryRunner(setupDataSource()); long count = 0L; try { Map map = (Map)queryRunner.query(sql, new MapHandler()); count = (Long)map.get("num"); } catch (SQLException e) { e.printStackTrace(); } return count; } /** * 产生json字符串 * @param list * @param pageInfo * @return */ @SuppressWarnings("unchecked") public String getJsonString(List list, Map pageInfo) { List mapList = new ArrayList(); for(int i = 0; i < list.size(); i++) { Map cellMap = new HashMap(); cellMap.put("id", ((Map)list.get(i)).get("id")); cellMap.put("cell", new Object[] {((Map)list.get(i)).get("id"), ((Map)list.get(i)).get("job_name"), ((Map)list.get(i)).get("work_address"), ((Map)list.get(i)).get("work_limit"), ((Map)list.get(i)).get("salary")}); mapList.add(cellMap); } pageInfo.put("rows", mapList); JSONObject object = new JSONObject(pageInfo); return object.toString(); } /** * 测试。。。。。 * @param args */ @SuppressWarnings("unchecked") public static void main(String[] args) { DBTest test = new DBTest(); Map pageInfo = new HashMap(); pageInfo.put("page", 2); pageInfo.put("total", 200); System.out.println(test.getJsonString(test.getJobInfo(0, 3), pageInfo)); } }
以上代码测试后得到的json字符串
{"total":200,"page":2,"rows":[{"id":1,"cell":[1,"Key Account Manager/大客户经理(CFC) ","北京","5-10年","面议"]},{"id":2,"cell":[2,"Key Account Manager/大客户经理(CFC) ","北京","5-10年","面议"]},{"id":3,"cell":[3,"Key Account Manager/大客户经理(CFC) ","北京","5-10年","面议"]}]}
第六步:后台servlet处理
本部分代码值得注意的是 你后台接受ajax请求是post提交上来的,所以在servlet里的post方法中处理。如果你使用的其他的web框架 可以不用考虑 package com.url.servlet; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.url.db.DBTest; public class DBServlet extends HttpServlet { public DBServlet() { super(); } public void destroy() { super.destroy(); } @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到当前页数 String page = request.getParameter("page"); //得到每页显示行数 String maxResult = request.getParameter("rp"); //计算查询开始数据下标 int startIndex = (Integer.parseInt(page) - 1) * Integer.parseInt(maxResult); //数据操控对象昂 DBTest dbTest = new DBTest(); //创造json所需的Map(此处代码可使用StringBuffer 拼接json字符串代替,但这种做法比较繁琐) Map pageInfo = new HashMap(); //当前页数设置 pageInfo.put("page", page); //总数据量设置 pageInfo.put("total", dbTest.getJobCount()); //生成json字符串 String jsonStr = dbTest.getJsonString(dbTest.getJobInfo(startIndex, Integer.parseInt(maxResult)), pageInfo); //response 相关处理 response.setContentType("html/txt"); response.setCharacterEncoding("utf-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache, must-revalidate"); response.setHeader("Pragma", "no-cache"); try { response.getWriter().write(jsonStr); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { e.printStackTrace(); } } }
第七步:测试你的代码
第九步:本例代码下载 :) 祝你好运
http://ynial.iteye.com/upload/attachment/37213/beaacf16-831a-33b2-b960-09d028d13668.rar
评论
19 楼
l932
2013-09-24
下载了源代码,导入工程,启动之后,表格只显示“Processing, please wait ..”
我在Servlet的doPost方法第一行System.out.print的语句都出不来
页面是不是根本就没调用url啊
我用ie10和chrome
我在Servlet的doPost方法第一行System.out.print的语句都出不来
页面是不是根本就没调用url啊
我用ie10和chrome
18 楼
java_MagicWang
2012-06-29
chinajj 写道
//add search box
g.sDiv.className = 'sDiv';
/* ********************************* 原来的代码注释掉
sitems = p.searchitems;
var sopt = "";
for (var s = 0; s < sitems.length; s++)
{
if (p.qtype=='' && sitems[s].isdefault==true)
{
p.qtype = sitems[s].name;
sel = 'selected="selected"';
} else sel = '';
sopt += "<option value='" + sitems[s].name + "' " + sel + " >" + sitems[s].display + " </option>";
}
if (p.qtype=='') p.qtype = sitems[0].name;
$(g.sDiv).append("<div class='sDiv2'>Quick Search <input type='text' size='30' name='q' class='qsbox' /> <select name='qtype'>"+sopt+"</select> <input type='button' value='Clear' /></div>"); $('input[name=q],select[name=qtype]',g.sDiv).keydown(function(e){if(e.keyCode==13) g.doSearch()});
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; g.doSearch(); });
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; });
原来的代码注释掉 ********************************** */
$(g.sDiv).append("<div class='sDiv2'><form id='searchForm'></form></div>");
p.searchitems(g);
$(g.bDiv).after(g.sDiv);
这里需要注意:<form id='searchForm'></form> 的内容需要另外填充进去,我的做法是页面其它部分的js再生成一个ajax请求,把我后台设定好的搜索项目表单域组合填充进去。
chinajj 写道
if (p.page>p.pages) p.page = p.pages;
//var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype};
/* ******************************** 原来的代码注释掉
var param = [
{ name : 'page', value : p.newp }
,{ name : 'rp', value : p.rp }
,{ name : 'sortname', value : p.sortname}
,{ name : 'sortorder', value : p.sortorder }
,{ name : 'query', value : p.query}
,{ name : 'qtype', value : p.qtype}
];
if (p.params)
{
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
原来的代码注释掉 ************************ */
var u="&page="+p.newp+"&rp="+p.rp+"&sortname="+p.sortname+"&sortorder="+p.sortorder;
$.ajax({
type: p.method,
/* ***** 原来的代码注释掉
url: p.url,
data: param,
原来的代码注释掉 **** */
url: p.url+u,
data: $("form:first",g.sDiv).formHash(),
dataType: p.dataType,
success: function(data){g.addData(data);},
error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
});
就是把它以前ajx提交的 data 都换成 url参数提交,反正他以前要提交的参数是固定的。
把最终ajax要提交的 data 换成 我的搜索表单的内容。 $("form:first",g.sDiv).formHash()这里使用了另外一个jquery插件http://www.pengoworks.com/workshop/jquery/field/field.plugin.htm的jquery.field.js 来取得搜索表单的hash,比较方便。jquery.field.js 里面作者有个明显的手误。呵呵,并且取 型如 user.name 就是带.的表单的域的值的会有问题,取不出来值,也得做些小改
//var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype};
/* ******************************** 原来的代码注释掉
var param = [
{ name : 'page', value : p.newp }
,{ name : 'rp', value : p.rp }
,{ name : 'sortname', value : p.sortname}
,{ name : 'sortorder', value : p.sortorder }
,{ name : 'query', value : p.query}
,{ name : 'qtype', value : p.qtype}
];
if (p.params)
{
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
原来的代码注释掉 ************************ */
var u="&page="+p.newp+"&rp="+p.rp+"&sortname="+p.sortname+"&sortorder="+p.sortorder;
$.ajax({
type: p.method,
/* ***** 原来的代码注释掉
url: p.url,
data: param,
原来的代码注释掉 **** */
url: p.url+u,
data: $("form:first",g.sDiv).formHash(),
dataType: p.dataType,
success: function(data){g.addData(data);},
error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
});
就是把它以前ajx提交的 data 都换成 url参数提交,反正他以前要提交的参数是固定的。
把最终ajax要提交的 data 换成 我的搜索表单的内容。 $("form:first",g.sDiv).formHash()这里使用了另外一个jquery插件http://www.pengoworks.com/workshop/jquery/field/field.plugin.htm的jquery.field.js 来取得搜索表单的hash,比较方便。jquery.field.js 里面作者有个明显的手误。呵呵,并且取 型如 user.name 就是带.的表单的域的值的会有问题,取不出来值,也得做些小改
能告诉我jquery.field.js你是怎么改的吗?我遇到了这个问题,不能以对象的方式传,QQ416263135,非常感谢
17 楼
hanguokai1987
2012-02-23
很好!但是代码只能借鉴!挺不错的!
16 楼
劉罡
2010-06-25
请问表头排序应该怎么做?
sortable:true设置了,但是没有排序的效果
sortable:true设置了,但是没有排序的效果
15 楼
justdo2008
2009-09-03
您好,请我你讲解的
width: 700, 略
height: 200 略
他们可以用百分比嘛?
我把
700改为80%出错了,暂时没有找到解决办法。
请我您有好的解决办法?
谢谢
width: 700, 略
height: 200 略
他们可以用百分比嘛?
我把
700改为80%出错了,暂时没有找到解决办法。
请我您有好的解决办法?
谢谢
14 楼
justdo2008
2009-09-02
很不错,谢谢
13 楼
tigarlion
2008-12-26
有没有改良后的代码,能否共享一下,想在一个项目里用一下,谢谢各位!
12 楼
tcrct
2008-09-30
你好,能开放出已经修改了的js文件吗?即可以完成完整功能的。如,改页面显示数,排序,查询,分页的。如果可以,请发送到tcrct@163.com.谢谢
11 楼
playfish
2008-09-03
呵呵,一直很关注jqeury的grid插件,非常期待您的进一步改进。
10 楼
ynial
2008-09-03
to java.hero 互相学习~ :) 互相交流
9 楼
java.hero
2008-09-03
学习呵呵,期待交流
8 楼
ynial
2008-09-02
等我抽点时间 把你的代码加上 ~ :)
7 楼
chinajj
2008-09-02
if (p.page>p.pages) p.page = p.pages;
//var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype};
/* ******************************** 原来的代码注释掉
var param = [
{ name : 'page', value : p.newp }
,{ name : 'rp', value : p.rp }
,{ name : 'sortname', value : p.sortname}
,{ name : 'sortorder', value : p.sortorder }
,{ name : 'query', value : p.query}
,{ name : 'qtype', value : p.qtype}
];
if (p.params)
{
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
原来的代码注释掉 ************************ */
var u="&page="+p.newp+"&rp="+p.rp+"&sortname="+p.sortname+"&sortorder="+p.sortorder;
$.ajax({
type: p.method,
/* ***** 原来的代码注释掉
url: p.url,
data: param,
原来的代码注释掉 **** */
url: p.url+u,
data: $("form:first",g.sDiv).formHash(),
dataType: p.dataType,
success: function(data){g.addData(data);},
error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
});
就是把它以前ajx提交的 data 都换成 url参数提交,反正他以前要提交的参数是固定的。
把最终ajax要提交的 data 换成 我的搜索表单的内容。 $("form:first",g.sDiv).formHash()这里使用了另外一个jquery插件http://www.pengoworks.com/workshop/jquery/field/field.plugin.htm的jquery.field.js 来取得搜索表单的hash,比较方便。jquery.field.js 里面作者有个明显的手误。呵呵,并且取 型如 user.name 就是带.的表单的域的值的会有问题,取不出来值,也得做些小改
//var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype};
/* ******************************** 原来的代码注释掉
var param = [
{ name : 'page', value : p.newp }
,{ name : 'rp', value : p.rp }
,{ name : 'sortname', value : p.sortname}
,{ name : 'sortorder', value : p.sortorder }
,{ name : 'query', value : p.query}
,{ name : 'qtype', value : p.qtype}
];
if (p.params)
{
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
原来的代码注释掉 ************************ */
var u="&page="+p.newp+"&rp="+p.rp+"&sortname="+p.sortname+"&sortorder="+p.sortorder;
$.ajax({
type: p.method,
/* ***** 原来的代码注释掉
url: p.url,
data: param,
原来的代码注释掉 **** */
url: p.url+u,
data: $("form:first",g.sDiv).formHash(),
dataType: p.dataType,
success: function(data){g.addData(data);},
error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
});
就是把它以前ajx提交的 data 都换成 url参数提交,反正他以前要提交的参数是固定的。
把最终ajax要提交的 data 换成 我的搜索表单的内容。 $("form:first",g.sDiv).formHash()这里使用了另外一个jquery插件http://www.pengoworks.com/workshop/jquery/field/field.plugin.htm的jquery.field.js 来取得搜索表单的hash,比较方便。jquery.field.js 里面作者有个明显的手误。呵呵,并且取 型如 user.name 就是带.的表单的域的值的会有问题,取不出来值,也得做些小改
6 楼
chinajj
2008-09-02
//add search box
g.sDiv.className = 'sDiv';
/* ********************************* 原来的代码注释掉
sitems = p.searchitems;
var sopt = "";
for (var s = 0; s < sitems.length; s++)
{
if (p.qtype=='' && sitems[s].isdefault==true)
{
p.qtype = sitems[s].name;
sel = 'selected="selected"';
} else sel = '';
sopt += "<option value='" + sitems[s].name + "' " + sel + " >" + sitems[s].display + " </option>";
}
if (p.qtype=='') p.qtype = sitems[0].name;
$(g.sDiv).append("<div class='sDiv2'>Quick Search <input type='text' size='30' name='q' class='qsbox' /> <select name='qtype'>"+sopt+"</select> <input type='button' value='Clear' /></div>"); $('input[name=q],select[name=qtype]',g.sDiv).keydown(function(e){if(e.keyCode==13) g.doSearch()});
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; g.doSearch(); });
$('input[value=Clear]',g.sDiv).click(function(){$('input[name=q]',g.sDiv).val(''); p.query = ''; });
原来的代码注释掉 ********************************** */
$(g.sDiv).append("<div class='sDiv2'><form id='searchForm'></form></div>");
p.searchitems(g);
$(g.bDiv).after(g.sDiv);
这里需要注意:<form id='searchForm'></form> 的内容需要另外填充进去,我的做法是页面其它部分的js再生成一个ajax请求,把我后台设定好的搜索项目表单域组合填充进去。
5 楼
chinajj
2008-09-02
两处大改动。基本思路是把它现有搜索部分干掉,换成自己的表单内容。然后再改掉它现在现有的提交数据部分,改成适合的即可。
4 楼
ynial
2008-09-02
to chinajj 可以交流一下!就像你说的那样他提供的搜索确实简单了些。 我考虑在他的查询部分做一个覆盖弹出层处理!可以在弹出层上多做些查询条件 这样可以方便不同的业务 可以使用thickbox 或者其他的别的东西!
3 楼
ynial
2008-09-02
内存泄漏到不至于,
最关键的问题在于每次翻页的时候都需要计算一下count 这个就比较讨厌
还没有仔细看看 底层的代码! 希望能把这个 问题搞定就好了
最关键的问题在于每次翻页的时候都需要计算一下count 这个就比较讨厌
还没有仔细看看 底层的代码! 希望能把这个 问题搞定就好了
2 楼
chinajj
2008-09-02
最近正好使用Flexigrid做列表js,后台用springmvc做一个小项目,有机会可以交流一下。我主要把Flexigrid的搜索部分改了一下,现在的搜索太简单了。
1 楼
a3mao
2008-09-02
不知道这个控件有没有内存泄漏的问题?
发表评论
-
javascript
2010-12-18 03:47 0完整的跨越window.open 开发文档 又名无敌的win ... -
jquery chart处理
2010-09-10 07:47 2033各种语言都有很多 关于chart的api、例如java的jfr ... -
jquery 类似 igoogle jQuery UI & sortable/draggable UI modules & jQuery COOKIE pl
2010-07-27 22:38 4457最近好多人问我怎么实现类似google的 igoogle 可以 ... -
[ php or jsp ] + jquery.imgareaselect 处理图片截图等比缩放!
2009-06-04 09:18 10358在开发中难免碰到图片 ... -
jquery grid插件 Flexigrid
2008-08-07 22:24 11658业务代码中需要grid的支持, 找了几个最终选择了jquery ... -
jquery 在覆盖层上处理tabview
2008-08-06 11:05 3883【在覆盖层上处理tabview】 在各式各样的业务中、 ... -
在thickbox显示层
2008-07-03 23:31 2285在练习JQUERY的时候 选择thickbox作为popwin ...
相关推荐
Flexigrid + servlet Flexigrid + servlet Flexigrid + servlet
总结来说,这个“jquery+flexigrid+json的java例子”演示了如何利用jQuery进行前端交互,Flexigrid显示数据,JSON作为数据交换格式,以及Java处理后端逻辑。这是一个典型的前后端分离的Web应用架构,对于学习现代Web...
Flexigrid是一款基于jQuery的强大的表格插件,它允许开发者将数据以美观、可操作的表格形式呈现出来,类似于知名的JavaScript框架ExtJS的表格组件。这个插件的主要优点在于其灵活性和可定制性,能够满足各种复杂的...
Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid。它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等。Flexigrid显示的数据能够通过Ajax获取或者从一个普通的表格转换。这个例子对...
### JQuery插件FlexiGrid之完全配置与使用 #### 一、引言 FlexiGrid是一款基于jQuery的轻量级表格插件,它为开发者提供了简单易用的方式来展示和操作数据表格。FlexiGrid支持多种功能,如排序、分页、筛选等,非常...
5. **Flexigrid**:Flexigrid 是一个基于jQuery的表格插件,提供分页、排序、搜索等功能,使得在Web页面上展示大量数据变得更加直观和高效。在本实例中,Flexigrid 可能用于展示由后端Struts2和Hibernate查询得到的...
Flexigrid是一款基于jQuery的开源表格插件,它为网页开发者提供了一种高效、灵活的方式来展示数据,并且具有丰富的功能和自定义选项。这个插件的设计目标是使数据的显示和操作变得更加简单,同时保持良好的性能和...
Flexigrid是一款基于jQuery的轻量级数据网格插件,专为实现强大的表格展示和操作功能而设计。在Web开发中,特别是在构建数据密集型应用时,它提供了一种高效且用户友好的方式来显示、排序、筛选和操作数据。这款插件...
Flexigrid是一款强大的JavaScript表格插件,它允许开发者在网页上创建可滚动、可排序、带分页功能的网格视图。在这个实例中,Flexigrid与Struts2、JSON和jQuery进行了集成,构建了一个功能丰富的Web应用。 Struts2...
Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid。它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等。Flexigrid显示的数据能够通过Ajax获取或者从一个普通的表格转换。
标题 "flexigrid+rails 新手代码-。-" 指涉的是一个关于使用 Flexigrid 和 Ruby on Rails 框架的初级教程或示例项目。Flexigrid 是一个 JavaScript 库,常用于创建可扩展、灵活的表格,而 Ruby on Rails 是一个流行...
Flexigrid是一款基于jQuery的表格插件,它提供了丰富的功能,如数据分页、排序、搜索和自定义列宽等,极大地增强了网页中表格的展示效果和交互性。在"jquery插件之flexigrid学习实例-jar包"中,我们主要关注的是如何...
Flexigrid是一款基于jQuery的表格插件,它提供了丰富的功能,如数据分页、排序、搜索和自定义列显示,适用于构建数据密集型Web应用。在这个"jquery插件之flexigrid学习实例"中,我们将深入探讨如何在Struts2框架下...
4. **Flexigrid**:Flexigrid是一款基于jQuery的数据网格插件,用于展示和管理表格数据。它可以实现分页、排序、搜索等功能,提供了一种灵活的方式显示大量结构化的数据。在Spring MVC和JPA后端提供数据的基础上,...
JQuery FlexiGrid 插件是一款强大的数据网格组件,用于在网页中展示和管理结构化的数据。它提供了丰富的功能,包括排序、分页、搜索、编辑和自定义操作按钮等。下面将详细介绍FlexiGrid的配置和使用方法。 首先,你...
`jQuery Grid` 是一个强大的数据网格插件,它允许开发者在网页上展示和操作结构化的数据。本演示集中了 `jQuery Flexigrid` 和 `DatePicker` 的应用,旨在展示如何结合这两个组件来创建功能丰富的用户界面。 ### ...
使用了框架是Struts1+hibernate+spring 集成了JQuery的FlexiGrid表格插件以及 jsmodal弹出框插件 一个增删改列表 数据库使用的是MYSQL 内有建表语句 数据库配置请自行配置本机数据库