<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    幸せのちから

    平凡的世界
    看似平常實崎嶇
    成如容易卻艱辛

    Chapter 13. AutoGenerateColumns

    Chapter 13. AutoGenerateColumns

    13.1. 引言

    大多數情況下你按照你需要的列來設計數據庫表。但是,有時候需要運行時動態生成一些列。 為了實現這點,eXtremeTable需要使用ColumnsTag并設置autoGenerateColumns屬性。

    AutoGenerateColumns為singleton并且不是線程安全的,因此不要定義任何類變量。

    13.2. ColumnsTag

    ColumnsTag只有autoGenerateColumns這一個屬性。所有你必須做的就是實現AutoGenerateColumns接口, 并設置autoGenerateColumns屬性為類的全路徑。

    <ec:table
    items="presidents"
    action="${pageContext.request.contextPath}/autoGenerateColumns.run"
    title="Presidents"
    >
    <ec:columns autoGenerateColumns="org.extremesite.controller.AutoGenerateColumnsImpl"/>
    </ec:table>

    AutoGenerateColumns接口只有一個方法:

    public void addColumns(TableModel model);

    你需要做的就是添加列(columns)到model里。最簡單的示例如下:

    public class AutoGenerateColumnsImpl implements AutoGenerateColumns {
    public void addColumns(TableModel model) {
    Iterator iterator = columnsToAdd().iterator();
    while (iterator.hasNext()) {
    Map columnToAdd = (Map) iterator.next();
    Column column = new Column(model);
    column.setProperty((String) columnToAdd.get(PROPERTY));
    column.setCell((String) columnToAdd.get(CELL));
    model.getColumnHandler().addAutoGenerateColumn(column);
    }
    }
    }

    示例中columnsToAdd()方法簡單返回一個包含生成列(columns)需要的所有信息的集合。 作為參考,下面是我在eXtremeComponents網站實例中使用的columnsToAdd()方法:

    private List columnsToAdd() {
    List columns = new ArrayList();
    columns.add(columnToAdd("fullName", "display"));
    columns.add(columnToAdd("nickName", "display"));
    columns.add(columnToAdd("term", "display"));
    columns.add(columnToAdd("born", "date"));
    columns.add(columnToAdd("died", "date"));
    columns.add(columnToAdd("career", "display"));

    return columns;
    }

    private Map columnToAdd(String property, String cell) {
    Map column = new HashMap();
    column.put(Column.PROPERTY, property);
    column.put(Column.CELL, cell);
    return column;
    }

    另外,我想聲明的是只創建列一次。eXtremeTable為了高效,不會每行創建一列, 而是通過循環持續插入新列值到已經存在的列。記住TableModel能夠訪問Context,因此 你可以在Controller(Spring)或Action(Struts)中定義樣式(look like)并通過request傳輸集合。 所以你得AutoGenerateColumns實現只需要構建列(Columns)并添加到model.columns里。

    posted on 2006-02-28 21:50 Lucky 閱讀(972) 評論(0)  編輯  收藏 所屬分類: extremeComponents

    <2006年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627281234
    567891011

    導航

    隨筆分類(125)

    文章分類(5)

    日本語

    搜索

    積分與排名

    最新隨筆

    最新評論

    主站蜘蛛池模板: 永久免费bbbbbb视频| 无码中文在线二区免费| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 最新久久免费视频| 亚洲区不卡顿区在线观看| 黄网站色视频免费看无下截| 免费吃奶摸下激烈视频| 三级片免费观看久久| 亚洲欧洲日产国码一级毛片| 一区二区视频在线免费观看| 亚洲中文字幕久久精品无码APP | 欧美亚洲精品一区二区| 高清国语自产拍免费视频国产| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲av午夜成人片精品电影 | 成年性生交大片免费看| 亚洲高清一区二区三区电影 | 国产免费啪嗒啪嗒视频看看| 美女18毛片免费视频| 国产AV无码专区亚洲AWWW| 少妇性饥渴无码A区免费| 久久精品国产亚洲av日韩| 无码人妻一区二区三区免费| 国产精品亚洲а∨天堂2021| 久久久久亚洲精品天堂久久久久久| 花蝴蝶免费视频在线观看高清版| 亚洲日本va午夜中文字幕一区| 国产精品69白浆在线观看免费| 黄网站在线播放视频免费观看 | 亚洲人成电影在线播放| 免费精品99久久国产综合精品| 亚洲不卡1卡2卡三卡2021麻豆| 国产精品无码一区二区三区免费 | 亚洲中文字幕无码av| 亚洲国产中文v高清在线观看| 污视频在线观看免费| 亚洲精品无播放器在线播放| 亚洲人成色777777在线观看| 美女网站免费福利视频| 国产免费MV大全视频网站| 亚洲乱码一二三四区国产|