- 浏览: 175348 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
mncc:
太好了!!!Mark一下!不过貌似那个冒泡的还少个右下角吧? ...
Google Maps 图标地址收藏 -
ivorytower:
去年5月捡了命回来,现在不评论那些豆腐渣工程……
汶川地震留给我们什么?单单建什么地震纪念馆是没有用的 -
lgx2351:
wtusmchen 写道blog写的不错啊,以后多过来学习:) ...
js学习笔记2-函数 -
wtusmchen:
blog写的不错啊,以后多过来学习:)
js学习笔记2-函数
在做应用开发中,最经常的操作是到后台数据库去获取数据,在前台用自定义grid标签来显示数据。对自定义标签不是很了解的初学者可能对自定义grid的实现有些迷惑,不知道数据库取出来的数据是怎么显示在自定义grid里的。其实,实现的过程是:把从数据取出来的结果集放在request里,自定义标签里说白了就是对这个结果集进行构造成<table><tr><td></td></tr></table>的形式显示出来就可以了。
在这里,我们不考虑自定义标签的实现,就只是把整个从后台读数据到前台显示的过程说一下。
一、前台部份:
<table width="100%" border="1" bordercolor="#708090" cellspacing="0" cellpadding="0"> <tr style="background-color: #BDD3E7;"> <td>标题</td> <td>内容</td> <td>时间</td> <td>操作</td> </tr> <logic:notEmpty name="GenBanRec"> <logic:iterate id="element" name="GenBanRec"> <tr> <td style="color: #0B4A8D;width: 130px;"> <%=((Hashtable) element).get("GEN_BAN_TITLE")%> </td> <td style="color: #0B4A8D;"> <%=((Hashtable) element).get("GEN_BAN_CONT")%> </td> <td style="color: #778899;width: 100px;"> <%=((Hashtable) element).get("UPDATE_DATE")%> </td> <td style="width:40px;"> <input type="button" id="genBanLocate" value="定位"/> </td> </tr> </logic:iterate> <table align="right"> <tr> <td> <input type="button" value="上一页" class="button" name="btnpre" disabled="true" onclick="basicOpr.toPage(1);" </td> <td> <input type="button" value="下一页" class="button" name="btnnext" onclick="basicOpr.toPage(2);" </td> </tr> </table> </logic:notEmpty> <logic:empty name="GenBanRec"> <p>已到最后一页!</p> <table align="right"> <tr> <td> <input type="button" value="上一页" class="button" name="btnpre" onclick="basicOpr.toPage(1);" </td> <td> <input type="button" value="下一页" class="button" name="btnnext"disabled="true" onclick="basicOpr.toPage(2);" /> </td> </tr> </table> </logic:empty> </table> <input type="hidden" id="CUR_PAGE" name="CUR_PAGE" />
以上代码有注意的地方如下:
1. 样式方面:用border="1" bordercolor="#708090"来做边线;用text-align: center来使得tr的标题居中。
2. 主要有到了struts的logic:empty和迭代标签logic:iterate标。logic:empty用于判断数据集是否为空,当不为空时迭代数据集。
3. 隐藏域CUR_PAGE用于时时记录翻的页数。
二、后台部份:
后台主要是获取数据,把得到的数据集放在request里。先说后台获取数据,主要是sql的写法,通过每页显示的数据量(iperpage)和当前所处的页数(icurpage)来得到要获取哪些数据:
if("1".equalsIgnoreCase(dir)){//上一页 sql += " AND TT.ROWNO>"+(icurpage-2)+"*"+iperpage+" AND TT.ROWNO<="+(icurpage-1)+"*"+iperpage+""; }else if("2".equalsIgnoreCase(dir)){//下一页 sql += " AND TT.ROWNO>"+icurpage+"*"+iperpage+" AND TT.ROWNO<="+(icurpage+1)+"*"+iperpage+""; }else if("0".equalsIgnoreCase(dir)){//第一页 sql += " AND TT.ROWNO>0 AND TT.ROWNO<="+iperpage+""; }
把数据放在list里,再把list放在request里的代码是重点,这段代码使得前台的table构造得以实现,代码如下:
private List paramToList(param_bean param) throws Exception { List list = new ArrayList(); try { RowSet rs = (RowSet) param.crs; ResultSetMetaData rsmd = rs.getMetaData();//得到ResultSetMetaData rs.beforeFirst();//把指针放到第一条记录的前面 while (rs.next()) {//循环rowset集合 Hashtable map = new Hashtable(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { Object val = rs.getObject(i); if (val == null) { val = new String(); } map.put(rsmd.getColumnName(i), val); } list.add(map); } } catch (Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } return list; }
以上代码分析:
1. paramToList()主要
把
ejb
取得到的数据集的每一行列名和列值放到
hashtalbe
中,再把这个
hashtable
放到
list
里,返回
list
。
2.通过rowset.getMetaData()来得到ResultSetMetaData,
ResultSetMetaData可以得到列名(rsmd.getColumnName(i))和列数(rsmd.getColumnCount())。
3.
通过
rs.getObject(i)得到单元格的值。
三:功能扩展
1.
在上一页下一页的基础上,需要增加定位到第几页,首页,尾页的功能,其实实现的方法大概差不多。
2.
增加一个隐藏域用于保存需要查询的所有数据集共有多少页,当到达最后一页时不能再让用户点击下一页了,也不用提示“最后一页”了。
四:最终的效果大概如下(测试数据):
发表评论
-
在一个定时器里频繁发ajax请求
2011-04-11 10:07 1768在一个定时器里频繁发ajax请求,最好设置一个全局变量,当请求 ... -
前台开发总结
2011-01-12 10:35 8021、如果在频繁地发送ajax请求,最好在前面的请求发送完成返回 ... -
TD中长串英文字母不能自动换行而汉字却可以自动换行
2010-12-23 10:06 1956例如:aaaaaaaaaaaaaaaaaaaaaaaaaaaa ... -
Google Maps 图标地址收藏
2010-11-27 10:46 2845Google Maps 图标 - ... -
js乱码
2010-05-30 16:08 01)在同一个工程下没有问题,可是如果跨工程的话,且引入的js有 ... -
ajax请求提供接口的讨论
2009-12-26 15:33 1066要提供一个查询某点周边的最近设施的功能给同事,在gis端的实现 ... -
ie8与ie6取form的讨论
2009-12-16 10:49 1404多frames下,在ie6下通过frames[i]为取得某个f ... -
把一个jsp分为两个div布局记录
2009-12-15 16:41 5628一个jsp页面想分成左右两块分开显示两块内容。这种效果很不错, ... -
js取整数四舍五入
2009-11-21 22:08 3441http://blog.csdn.net/Feiin/arch ... -
读“javascript权威指南”笔记(更新中。。。)
2009-11-14 13:00 0第一章: 第二章: 第三章: 第四章: 第五章: 第 ... -
grid拖动列头改变列宽
2009-10-21 17:19 1598grid中,当某一单元格的内容很多时,要能够拖动grid标题行 ... -
js常用功能-drag功能总结
2009-09-18 13:50 1233在做web开发中,拖动一个元素是很常见的功能,特别是对于浮动层 ... -
常用功能-tip相关知识总结
2009-09-18 08:48 1255在应用开中很常用的功能是tip,比如鼠标放在某个需要说明的元素 ... -
js学习笔记4-事件和事件处理
2009-09-16 22:18 10311. 总述: 本章将讲三种完全不同的不兼容的事件处理模型 ... -
grid里用右键来实现功能菜单
2009-09-15 20:22 1264在自定义grid中,如果一个grid的列很多,窗口无法显示这么 ... -
js学习笔记3-构造函数、类和原型
2009-09-06 16:18 27163. 构造函数、类和原型总述:对象是我们很熟悉的,常在程序中用 ... -
gird分页时form与url参数的探讨
2009-09-05 22:35 1170大家可能很常用一个查 ... -
js学习笔记2-函数
2009-09-02 23:01 14302. 函数 2.1函数直接量函数直接量是用作表达式,而不是用作 ... -
下拉提示文本框
2009-08-24 18:46 1719文本框在当用户输入时,常常需要把相近的信息提示给用户,以方便用 ... -
js学习笔记1-对象和数组
2009-08-19 23:03 8821. 对象和数组 总述对象 ...
相关推荐
1. **Ext Grid Panel**: Ext的核心组件之一是Grid Panel,它用于显示二维数据集,通常用于数据展示和操作。Grid Panel可以配置多种列类型,如文本、数字、日期等,并支持排序、分页和过滤。 2. **Inline Editing**:...
在Android开发中,有时我们希望实现类似iOS的交互效果,比如“仿iOS抖动单行GridView长按显示删除图标”。这种功能通常用于提供用户一种直观的编辑方式,让他们可以通过长按元素并显示删除图标来删除不需要的项目。...
这种设计方式常用于展示不同类型的数据,或者实现类似选项卡的功能,每个选项卡对应一个不同的GridView。注意,如果需要在同一个Activity内切换GridView,可能需要处理好布局的管理,避免内存泄漏和性能问题;如果...
创建ViewHolder时,需要一个类型匹配的ViewGroup(通常为LayoutInflater.inflate()返回的View)作为构造参数: ```java public static class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; ...
在Android开发中,GridView是一种非常常用的布局管理器,它允许我们以网格的形式展示数据,通常用于创建类似相册、应用列表等界面。本教程将基于Android Studio 2.0进行`GridView02`的学习,旨在深入理解并掌握...
GridView是Android平台中一个常用的布局控件,它主要用于展示数据集,通常以表格形式排列,类似于网页中的表格或Windows操作系统的文件管理器视图。在Android应用开发中,GridView经常用于展示图片、列表项等可滚动...
// 构造函数,初始化上下文和数据集 public MyAdapter(Context context, List<Item> items) { this.context = context; this.items = items; } // 其他Adapter的方法... } ``` 3. **绑定数据** 在...
- **Grid**:Grid 组件在 EXT2 中得到了进一步增强,支持更多的数据处理和显示功能。 - **XTemplate**:XTemplate 是一种模板引擎,用于生成 HTML 内容。 - **DataView**:DataView 组件用于展示数据集合,提供了...
95. **ResultSet**:结果集,查询结果的集合。 96. **Next**:下一个,遍历结果集时移动到下一行。 97. **Close**:关闭,释放资源,如关闭连接、结果集等。 98. **executeQuery**:执行查询,执行SQL查询并返回...
Tcl/Tk由John Ousterhout在1990年代开发,是一款流行的开源脚本语言和GUI组件集。Tkinter是Python编程语言中唯一随标准库提供的GUI包。由于其广泛的应用,Tkinter适用于多种操作系统,包括Unix、Windows和MacOS,...
GridView允许用户以行和列的形式显示数据,类似于电子表格。在本篇中,我们将深入探讨Java GridView的使用方法,特别针对Android平台。 1. **GridView的布局** 在Android开发中,GridView是`android.widget....
静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...
JavaBean是一种特殊的Java类,可以序列化、拥有无参构造器,并且它的属性可以通过getter和setter方法进行访问和修改。在Web应用程序中,JavaBean通常用来封装数据,例如表单数据,简化数据的处理。 4. AJAX ...
`GridView`可以创建一个可滚动的网格,通常用于显示列表项,如应用的图标列表或照片集。`GridView.count`构造函数常用于创建固定列数的网格,而`GridView.extent`则基于每个子项的最大宽度来创建网格。 `...
同时,确保网页在不同屏幕尺寸上都能正常显示,这需要运用媒体查询实现响应式设计。 总的来说,创建一个谷歌主页是一个很好的练习,可以帮助你巩固HTML和CSS的基础知识,提升网页设计和开发技能。通过这个项目,你...