lyyb2001

只是为方便自己找记录而已
posts - 57, comments - 27, trackbacks - 0, articles - 5
  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理

extremetable应用

Posted on 2008-02-29 15:30 skycity 阅读(497) 评论(0)  编辑  收藏 所属分类: J2EE技术
 自定义html视图
eXtremeTable使用View接口来生成HTML。你可以使用发行包已经提供的视图,或者你可以插入自己的视图实现。如果要定义自己的视图只需实现View接口,扩展AbstractHtmlView类便可。
一个改变eXtremeTable工具条的实例:(定义两个类)
1.Mytoolbar.java
public class MyToolbar extends TwoColumnTableLayout {
        public MyToolbar(HtmlBuilder html, TableModel model) {
               super(html, model);
           }
           protected boolean showLayout(TableModel model) {
               boolean showPagination = BuilderUtils.showPagination(model);
               boolean showExports = BuilderUtils.showExports(model);
               boolean showTitle = BuilderUtils.showTitle(model);
               if (!showPagination && !showExports && !showTitle) {
                   return false;
               }
               return true;
           }
          protected void columnLeft(HtmlBuilder html, TableModel model) {
               html.td(2).close();
               new TableBuilder(html, model).title();
               html.tdEnd();
           }
           protected void columnRight(HtmlBuilder html, TableModel model) {
               boolean showPagination = BuilderUtils.showPagination(model);
               boolean showExports = BuilderUtils.showExports(model);
               ToolbarBuilder toolbarBuilder = new ToolbarBuilder(html, model);
               html.td(2).align("right").close();
                             html.table(2).border("0").cellPadding("0").cellSpacing("1").styleClass(BuilderConstants.TOOLBAR_CSS).close();
               html.tr(3).close();
               if (showPagination) {
                   html.td(4).close();
                   toolbarBuilder.firstPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.prevPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.nextPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.lastPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.separator();
                   html.tdEnd();
                   html.td(4).close();
             // 在工具条里面添加一个文本框以便手动的控制页面显示的行数
                   /* StringBuffer action = new StringBuffer("javascript:");
                   TableActions ta = new TableActions(model);
                   int currentRowsDisplayed = model.getLimit().getCurrentRowsDisplayed()
                         html.input("text").name(model.getTableHandler().prefixWithTableId() + TableConstants.ROWS_DISPLAYED).value(String.valueOf(currentRowsDisplayed);
                   action.append(ta.getClearedExportTableIdParameters());
                   String form = BuilderUtils.getForm(model);
                   action.append("document.forms.").append(form).append(".");
                               action.append(model.getTableHandler().prefixWithTableId()).append(TableConstants.CURRENT_ROWS_DISPLAYED);
                   action.append(".value=").append("this.value").append(";");
                   action.append(ta.getFormParameter(TableConstants.PAGE, "1"));
                   action.append("if(event.keyCode==13){");
                   action.append(ta.getOnInvokeAction());
                   action.append("}");
                   html.onkeypress(action.toString());
                   html.xclose();
                   html.tdEnd();*/
                  
                   html.td(4).style("width:10px").close();
                   html.newline();
                   html.tabs(4);
                   toolbarBuilder.rowsDisplayedDroplist();
                   html.img();
 html.src(BuilderUtils.getImage(model, BuilderConstants.TOOLBAR_ROWS_DISPLAYED_IMAGE));
                  html.style("border:0");
                   html.alt("Rows Displayed");
                   html.xclose();
                   html.tdEnd();
                   if (showExports) {
                       html.td(4).close();
                       toolbarBuilder.separator();
                       html.tdEnd();
                   }
               }
               if (showExports) {
                   Iterator iterator = model.getExportHandler().getExports().iterator();
                   for (Iterator iter = iterator; iter.hasNext();) {
                       html.td(4).close();
                       Export export = (Export) iter.next();
                       toolbarBuilder.exportItemAsImage(export);
                       html.tdEnd();
                   }
               }
               html.trEnd(3);
               html.tableEnd(2);
               html.newline();
               html.tabs(2);
               html.tdEnd();
           }
}
2.MyView.java
public class MyView extends AbstractHtmlView {
        protected void beforeBodyInternal(TableModel model) {
               getTableBuilder().tableStart();
               getTableBuilder().theadStart();
               getTableBuilder().filterRow();
               getTableBuilder().headerRow();
               getTableBuilder().theadEnd();
               getTableBuilder().tbodyStart();
           }
           protected void afterBodyInternal(TableModel model) {
               getCalcBuilder().defaultCalcLayout();
               getTableBuilder().tbodyEnd();
               getTableBuilder().tableEnd();
               toolbar(getHtmlBuilder(), getTableModel());
               statusBar(getHtmlBuilder(), get自定义html视图
eXtremeTable使用View接口来生成HTML。你可以使用发行包已经提供的视图,或者你可以插入自己的视图实现。如果要定义自己的视图只需实现View接口,扩展AbstractHtmlView类便可。
一个改变eXtremeTable工具条的实例:(定义两个类)
1.Mytoolbar.java
public class MyToolbar extends TwoColumnTableLayout {
        public MyToolbar(HtmlBuilder html, TableModel model) {
               super(html, model);
           }
           protected boolean showLayout(TableModel model) {
               boolean showPagination = BuilderUtils.showPagination(model);
               boolean showExports = BuilderUtils.showExports(model);
               boolean showTitle = BuilderUtils.showTitle(model);
               if (!showPagination && !showExports && !showTitle) {
                   return false;
               }
               return true;
           }
          protected void columnLeft(HtmlBuilder html, TableModel model) {
               html.td(2).close();
               new TableBuilder(html, model).title();
               html.tdEnd();
           }
           protected void columnRight(HtmlBuilder html, TableModel model) {
               boolean showPagination = BuilderUtils.showPagination(model);
               boolean showExports = BuilderUtils.showExports(model);
               ToolbarBuilder toolbarBuilder = new ToolbarBuilder(html, model);
               html.td(2).align("right").close();
                             html.table(2).border("0").cellPadding("0").cellSpacing("1").styleClass(BuilderConstants.TOOLBAR_CSS).close();
               html.tr(3).close();
               if (showPagination) {
                   html.td(4).close();
                   toolbarBuilder.firstPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.prevPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.nextPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.lastPageItemAsImage();
                   html.tdEnd();
                   html.td(4).close();
                   toolbarBuilder.separator();
                   html.tdEnd();
                   html.td(4).close();
             //在工具条里面添加一个文本框以便手动的控制页面显示的行数
                   /* StringBuffer action = new StringBuffer("javascript:");
                   TableActions ta = new TableActions(model);
                   int currentRowsDisplayed = model.getLimit().getCurrentRowsDisplayed()
                         html.input("text").name(model.getTableHandler().prefixWithTableId() + TableConstants.ROWS_DISPLAYED).value(String.valueOf(currentRowsDisplayed);
                   action.append(ta.getClearedExportTableIdParameters());
                   String form = BuilderUtils.getForm(model);
                   action.append("document.forms.").append(form).append(".");
                               action.append(model.getTableHandler().prefixWithTableId()).append(TableConstants.CURRENT_ROWS_DISPLAYED);
                   action.append(".value=").append("this.value").append(";");
                   action.append(ta.getFormParameter(TableConstants.PAGE, "1"));
                   action.append("if(event.keyCode==13){");
                   action.append(ta.getOnInvokeAction());
                   action.append("}");
                   html.onkeypress(action.toString());
                   html.xclose();
                   html.tdEnd();*/
                  
                   html.td(4).style("width:10px").close();
                   html.newline();
                   html.tabs(4);
                   toolbarBuilder.rowsDisplayedDroplist();
                   html.img();
 html.src(BuilderUtils.getImage(model, BuilderConstants.TOOLBAR_ROWS_DISPLAYED_IMAGE));
                  html.style("border:0");
                   html.alt("Rows Displayed");
                   html.xclose();
                   html.tdEnd();
                   if (showExports) {
                       html.td(4).close();
                       toolbarBuilder.separator();
                       html.tdEnd();
                   }
               }
               if (showExports) {
                   Iterator iterator = model.getExportHandler().getExports().iterator();
                   for (Iterator iter = iterator; iter.hasNext();) {
                       html.td(4).close();
                       Export export = (Export) iter.next();
                       toolbarBuilder.exportItemAsImage(export);
                       html.tdEnd();
                   }
               }
               html.trEnd(3);
               html.tableEnd(2);
               html.newline();
               html.tabs(2);
               html.tdEnd();
           }
}
2.MyView.java
public class MyView extends AbstractHtmlView {
        protected void beforeBodyInternal(TableModel model) {
               getTableBuilder().tableStart();
               getTableBuilder().theadStart();
               getTableBuilder().filterRow();
               getTableBuilder().headerRow();
               getTableBuilder().theadEnd();
               getTableBuilder().tbodyStart();
           }
           protected void afterBodyInternal(TableModel model) {
               getCalcBuilder().defaultCalcLayout();
               getTableBuilder().tbodyEnd();
               getTableBuilder().tableEnd();
               toolbar(getHtmlBuilder(), getTableModel());
               statusBar(getHtmlBuilder(), getTableModel());
           }
           protected void toolbar(HtmlBuilder html, TableModel model) {
               new MyToolbar(html, model).layout();
           }
           protected void statusBar(HtmlBuilder html, TableModel model) {
               new DefaultStatusBar(html, model).layout();
           }
}
然后在<ec:table>中添加一个属性view=”MyView的完整类名”,运行效果如下:
TableModel());
           }
           protected void toolbar(HtmlBuilder html, TableModel model) {
               new MyToolbar(html, model).layout();
           }
           protected void statusBar(HtmlBuilder html, TableModel model) {
               new DefaultStatusBar(html, model).layout();
           }
}
然后在<ec:table>中添加一个属性view=”MyView的完整类名”。
为表格添加操作
在实际应用,特别是在一些管理系统中前台页面往往查看信息与编辑、删除都放在一起。对于eXtremeTable达到这样的效果只需在jsp文件中(自定义一列)如下:
<ec:column alias="操作" filterable="false" sortable="false" >
<a href="${pageContext.request.contextPath}/servlet/EmployeeServlet?param=edit&id=${employee.id}">编辑</a>
<!--使用图片的好处就是可以避免国际化的问题-->
<a onclick="confirm('真的删除');" ><img border="0" src ="${pageContext.request.contextPath}/images/delete.jpg"></a>
</ec:column>


Lyyb2001

只有注册用户登录后才能发表评论。


网站导航: