スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

表の列を非表示にする

2014年10月03日 22:42

少し前にこんなお問合せがありました。
「Domino Web アプリケーションのフォームに表があり、特定の列を非表示にしている。Domino サーバーの以前のバージョンでは列が非表示になっていたが、現在は内容のみが非表示になる」
確認したところ、Domino R5 以前は段落非表示が設定されているとセル自体が非表示になっていたため、列全体のセルに設定すれば列が非表示になりました。

Hidden table cells appear to be missing information in browser
http://www-01.ibm.com/support/docview.wss?uid=swg21138016

Domino 6 以降ではそのように設定しても下記のように ecblank.gif というブランクスペースのイメージが挿入されてセルは非表示になりません。

<td width="46" bgcolor="#E0F1FF"><img width="1" height="1" src="/icons/ecblank.gif" border="0" alt=""></td>

行であれば行の全セルで段落を非表示に設定すれば行自体が消えますが、列ではセルの内容が非表示になるだけです。

Notes アプリケーションではできませんが、Web アプリケーションならば表のセルのプロパティの「@(表のプログラミング)」タブの「セルのHTMLタグ」のスタイルに display:none を設定すればセル自体が非表示になるので、これを列の全セルに設定すれば列が非表示になります。

<td style="display:none" width="46"><img width="1" height="1" src="/icons/ecblank.gif" border="0" alt=""></td>

動的に非表示にするには、JavaScript で非表示にしたいセルの style の display プロパティに none を設定するようにすれば可能です。
表のプロパティの「@(表のプログラミング)」タブの「表のHTMLタグ」の「名前/ID」に名前をつけて(例: table1)、以下の JavaScript 式をどこかのイベントで実行されるようにします。

// table1 の 3 列目を非表示にする
var tbl=document.getElementById("table1");
var trs=tbl.getElementsByTagName("tr");
for(var i=0; i<trs.length; ++i){
var tds=trs[i].getElementsByTagName("td");
tds[2].style.display = "none";
}


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/497-5dced027
    この記事へのトラックバック


    最新記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。