« Return to Thread: VWPの表にてヘッダ文字を動的に設定する方法

Re: VWPの表にてヘッダ文字を動的に設定する方法

by shin-6 :: Rate this Message:

Reply to Author | View in Thread

shinsanです。

表のカラム数が動的に変わるということでしょうか?
それともヘッダテキストのみが変わるということでしょうか?

後者ならばデザイナ上でバリューバインドしておいて、prerender()メソッド内で動的
にそのプロパティをかえることがやはり無難です。


また、カラムも5.5.1ならばデフォルトでコンポーネントバインディングしてあります
のでそれを使う方法もあります。6.1ならばバインド設定をしてあげる必要があります。

TableColumn columns[]={
    tableColumn1 , tableColumn2 …
};

int i=0;
for(TableColumn col : columns){
    col.setHeaderText("カラム:"+ i++ );
}


注意したいのは配列を使ったバリューバインディングを作るとプロパティ等を触った
瞬間に右下に例外のマークが出ることです。これは6.1になっても直っていないようです。
6.1のスタックトレースは以下のようになりますが、従来のバージョンでも同じです。

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
        at java.lang.String.substring(String.java:1938)
        at org.netbeans.modules.visualweb.propertyeditors.binding.data.BindValueToDataProviderPanel.updateDataProvider(BindValueToDataProviderPanel.java:266)
        at org.netbeans.modules.visualweb.propertyeditors.binding.data.BindValueToDataProviderPanel$1.run(BindValueToDataProviderPanel.java:184)
[catch] at java.lang.Thread.run(Thread.java:619)

JSFとしては普通に正しいものだと思いますし、実行しても問題は見つかりません。



あとtableRowGroupは1回目はデータのあるなしにかかわらずからっぽのはずです。
ですから1回目でgetChildren()でまわすのは無理です。


"Hideo Konishi" <h-konishi@...> wrote:

> お世話になります。小西といいます。
>
> VWPとオラクルにてWebアプリケーションを開発しています。
> 表のヘッダ文字を動的に設定したいのですが、うまくいかないので困っています。
>
> ヘッダに文字を設定するタイミングはprerenderイベントで行っています。
> prerender()では以下のようにtableRowGroupから関連づいているカラム情報を
> リストで取得し、設定をしています。
>
> ----------------------------------------------------------
> prerender()
>
>     //テーブルカラム配列を取得
>     List list=tableRowGroup.getChildren();
>         //配列をループしてヘッダテキストに文字列を設定
>         for (int i = 0; i < list.size(); i++) {
>             //テーブルカラム情報の取得
>             tableColumn = (TableColumn)list.get(i);
>             //ヘッダ文字の設定
>             //arrayにはあらかじめ文字列が設定されています
>            tableColumn.setHeaderText(array[i];);
>          }
> ----------------------------------------------------------
>
> �ただし、画面をはじめて起動した際のprerenderでは、tableRowGroup.getChildren()には
> まだテーブルカラム情報が設定されていない為、ヘッダ文字列を設定できませんでした。
>
>
>
>
> �画面起動、実行などのボタンを押すと、画面が再描画されますが、その際のprerenderでは
> tableRowGroup.getChildren()にカラム情報が設定されているためヘッダが設定できます。
>
> �tableRowGroup.getChildren()に値が設定されるタイミングを調べたところ、
> 上記�では設定されず、上記�にて,まずpreprocess()が走り、そこでResultSetPropertyResolver.setValue
> がよばれて設定されているよう
> でした。これは何が呼んでいるのかはソースが存在しないため調べることが出来ませんでした。
>
> .�表を動的に生成するというHPがあったので、最終的にはそうしないといけないのかなあと思っていますが、バインド
>  関係もすべて作成するのも手間がかかるので他にいい方法がないか調べています。
>
> �もし何かいい方法を知っておられる方がいらっしゃいましたらお教えいだだけるでしょうか?。
>
> よろしくお願いします。
>
> ----------------------------------------------------------------------
> ・環境
> netbeans-5_5_1-windows-ja
> netbeans-visualweb-5_5_1
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
> For additional commands, e-mail: nbdiscuss_ja-help@...
>
>
>
> __________ NOD32 3084 (20080508) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://canon-sol.jp/product/nd
>


---------------------------------------------------------------------
To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail: nbdiscuss_ja-help@...

 « Return to Thread: VWPの表にてヘッダ文字を動的に設定する方法

LightInTheBox - Buy quality products at wholesale price