lyyb2001

          只是為方便自己找記錄而已
          posts - 57, comments - 27, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

          extremetable應用

          Posted on 2008-02-29 15:30 skycity 閱讀(508) 評論(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
          主站蜘蛛池模板: 根河市| 丰城市| 柞水县| 葫芦岛市| 江北区| 石嘴山市| 榆中县| 革吉县| 大关县| 沙坪坝区| 泾川县| 尼勒克县| 墨江| 洛扎县| 津市市| 南陵县| 阜新市| 甘洛县| 蒙城县| 南皮县| 宜宾市| 黔西| 焦作市| 巫溪县| 涿州市| 漯河市| 德江县| 疏勒县| 禹州市| 绵竹市| 卓尼县| 教育| 达拉特旗| 奉新县| 于都县| 望江县| 射阳县| 乌鲁木齐县| 全南县| 康保县| 息烽县|