论坛首页 Java企业应用论坛

T5 技巧 2:为Grid组件的每一行增加“删除/修改”链接。

浏览 16002 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-14  
lococode 写道
to:dengyin2000
关于标题所说的给Grid增加操作一列的问题,lz做法是一种方法,但是每个不同的grid都要buildDriverBeanModel一下,是否太复杂了?我们的做法是,每个页面有需要的话,会有一个form类,这里可以在Bean中的一个property,因为我们一开始就把hiernate实体类和页面需要的对象分开的。所以不存在污染bean的问题,而且这样更明确form类的功能。不过model.remove()还是需要用的。
关于Grid分页的实现,对于lz的实现方式,有几点不同意的地方:分页组件BussnissService 存在依赖的的关系,分页组件依赖hsql。
我的做法虽然让我自己现在还是不太满意,但是,至少,可以在一定程度上更加通用。
^_^!


有没有必要多加一个Form对象。  GridDataSource当然需要关联invoke bussniss Service 方法。 你可以说说你是怎样做的。你说hsql不应该出现, 你当然可以把hsql放到service方法中。  当然如果很多domain的话, 那么就有许多findXXX的方法了。
0 请登录后投票
   发表时间:2007-09-20  
dengyin2000 写道
lococode 写道
to:dengyin2000
关于标题所说的给Grid增加操作一列的问题,lz做法是一种方法,但是每个不同的grid都要buildDriverBeanModel一下,是否太复杂了?我们的做法是,每个页面有需要的话,会有一个form类,这里可以在Bean中的一个property,因为我们一开始就把hiernate实体类和页面需要的对象分开的。所以不存在污染bean的问题,而且这样更明确form类的功能。不过model.remove()还是需要用的。
关于Grid分页的实现,对于lz的实现方式,有几点不同意的地方:分页组件BussnissService 存在依赖的的关系,分页组件依赖hsql。
我的做法虽然让我自己现在还是不太满意,但是,至少,可以在一定程度上更加通用。
^_^!


有没有必要多加一个Form对象。  GridDataSource当然需要关联invoke bussniss Service 方法。 你可以说说你是怎样做的。你说hsql不应该出现, 你当然可以把hsql放到service方法中。  当然如果很多domain的话, 那么就有许多findXXX的方法了。


1.一个Pager对象,典型如下:
private List<T> elements;
private int itemAmount;
private int currentPageIndex;
private int pageSize;
public int getXXX
...
public void setXXX
.....

2.一个GridSourceModel 接口,留个具体的业务操作实现,典型代码如下:
//public Pager<T> getCurrentPager();
public Pager<T> getCurrentPager(int pageSize,int pageNo);
//public void setCurrentPager(Pager<T> pager);

3.重新实现:GridDataSource
此中对象为
private final Pager<T> _pager;
而不是ListGridDataSource中的。
private final List _list;
4.contributeTypeCoercer
。。。。。

5.use:
items = new GridSourceModel<XXXObject>() {

      public Pager<XXXObject> getCurrentPager(int pageSize, int pageNo) {
			Pagination<XXXObject1> pus = manager.findXXX(XXx,pageSize,pageNo);
			Pager<XXXObject> pager = getPager(pus);//Pagination -> Pager
			return pager;
		}
};
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics