- PR -

DataGridに動的に追加したボタン列のスタイル設定時の追加処理?

1
投稿者投稿内容
はなたれ小僧
常連さん
会議室デビュー日: 2003/07/17
投稿数: 21
投稿日時: 2005-03-20 09:58
ASP.NETのDataGridに編集などのボタン列を"動的に"追加し、ボタンのプロパティをスタイルとして設定して色やフォントを指定できるようにして使おうとしていますが、ページが表示された直後だけはこのスタイル設定が反映されません。(一度PostBackするとちゃんと反映します。)
DataBind()を2回続けてやってみるなどくだらないテストをやってみてはいますが、どのタイミングで何をすればよいのか対策が見つからないでいます。

スタイル設定のタイミング: DataGrid1_ItemCreated または DataGrid1_ItemDataBound

スタイルの設定: 再帰的にe.item.cellsの下のコントロールをチェックし、Buttonにはすべてスタイルシートのクラス("ActionButton")を指定。
if (control.GetType().Equals(typeof(System.Web.UI.WebControls.Button)))
(control as Button).CssClass = "ActionButton";

このDataGridには他にもColumnTemplateを使ってカスタムなボタンを追加しており、それらはちゃんと同様に指定したスタイルを即座に反映していますので、標準で用意されたボタン列の扱い方の問題と思いますが、何か手がかりをご存知ではないでしょうか?

VS.NET 2003/C#です。
はなたれ小僧
常連さん
会議室デビュー日: 2003/07/17
投稿数: 21
投稿日時: 2005-03-20 16:22
自己レスです。
DataGridの扱いがいちいち面倒なのでユーザコントロールに入れて処理を標準化した上でWebフォームにLoadControl()して使うようにしているのですが、イベントの連携処理で順序がまずいところがあり、修正して正しく表示できるようになりました。
毎度のことですが、お騒がせいたしました。
1

スキルアップ/キャリアアップ(JOB@IT)