2011年7月30日 星期六

【ZK】更換 window 及 listbox 的樣式

本篇繼續分享有關 ZK 的style 設定

其實不管任何元件的預設樣式都可以在 ZK 的官網找到

相對的也提供了讓開發者能夠客制化的 UI 呈現樣式

就先以 listbox 為例,如下圖就是他預設的樣式,藍白交錯









如果需要變換顏色的話,則可以如下所示

<style>
    div.z-listbox-body{
        background: #F7E7B4;
    }
    tr.z-listbox-odd {
        background: #F0F0F0;
    }
</style>

div.z-listbox-body 的 background 

可以更換基數牌的背景顏色,相對的

tr.z-listbox-odd 的 background

則能夠更換偶數排的背景顏色,結果如下圖

2011年7月18日 星期一

【ZK】Javascript 開新視窗

本篇繼上一篇 【ZK】開新視窗 的應用之後

這邊我來介紹一下如何運用 Javascript 的技巧開啟一個新的視窗

當然 ZK 也能夠支援 Javascript 的運作

再運用 Javascript 開心視窗時,程式通常如下

window.open('目標 URL', '', '');  總共可帶三個參數進去

延續之前的例子,當 User select 某個 item 的時候就要開新一個視窗的話

可以在 listbox 的 onSelect 時,執行你所需要的 Javascript

程式大致如下 :


<attribute name="onSelect">    
       <![CDATA[
              String acc_id = Executions.getCurrent().getDesktop().getAttribute("select_id");
              String acc_name = Executions.getCurrent().getDesktop().getAttribute("select_name");
              String userId = Executions.getCurrent().getDesktop().getAttribute("loginId");

2011年7月7日 星期四

Hibernate 教學 - HQL 基本介紹

HQL 為 Hibernate 的查詢語句,他很類似於 SQL 但是比所能達到的功能有些許限制

重點是 HQL 為一種物件導向式的查詢語言,簡單說 HQL 是可以直接針對實體物件進行查詢、修改...等

而不像 SQL 是針對 Table,以下用一個最簡單的 select...from 來介紹 HQL

一般的 SQL 的 select * from t_product --- 指 撈出 t_product 這個 table 的所有欄位資料

如果是 HQL 會這樣寫 select p from Product p --- 這裡的 Product 為一個實體物件

以上這樣的寫法 可以簡化成 from Product as p 或是 from Product p

甚至還可以這樣寫 from Product

只要記得的是 from 後面接的是一個 Java 的實體類別,如果只是要撈出 t_product 的 name 欄位呢?

HQL : select p.name from Product --- 注意這裡的 p.name

p 目前唯一個 Product 的物件,p.name 表示了 p 物件的 name 屬性

2011年7月2日 星期六

【ZK】開新視窗

在前一篇的【ZK】Radiogroup 中介紹了如何透過 radiogroup 篩選 listbox 裡的資料

這邊我們繼續介紹當使用者選擇了 listbox 中的某一列時,需要開一個新的視窗,並傳入參數

這邊採用的方法是運用 selectedItem 屬性

所以先設定 listbox 的 selectedItem 屬性,如下所示:


<listbox id="box" multiple="true" rows="10"
             model="@{win$composer.allCountry}"
             selectedItem="@{win$composer.current}">


還記得原來的這個 Controller,程式可以在第一篇中找到【ZK】資料庫應用

接著在這個 Controller :DataHandleController.java 中這定 getter/setter

2011年7月1日 星期五

【ZK】Radiogroup

本篇繼續上一篇的 ZK 資料庫應用,這邊我們以一組 Radiogroup 來過濾 listbox 元件中的資料

首先先來看看 radiogroup 與 radio 的寫法


<radiogroup id="accountGroup" apply="org.controller.AccountGroupRetriver">
        <radio label="select1" selected="true"/>
        <radio label="select2"/>
        <radio label="select3"/>
radiogroup>

大致上跟一般在寫 HTML 是差不多的

注意 apply 屬性會對應到類似一個 controller 的 Java 程式,專門對這個 radiogroup

做事件偵測並篩選資料,這也是 ZK 的好處之一

它能夠跟針對各個的元件做類似服務的請求或是初始化的應用,相當方便。

接者就來看看這段程式吧