ASP.NET Dynamic Data を是非活用しようといろいろ試行中。
なにはともあれ Dynamic Data を使って、顧客名のマスタメンテナンスプログラムを模擬して試験プログラムを作成してみた。
...ちょっとフォントが汚い感じがする。
Site.css の末尾に「* { font-family:Verdana; }」を追加して回避。
次に、顧客一覧のページに進んでみた。
...ちょっと間延びしすぎな感じがする。
Site.css の末尾に「table.gridview { width: auto; }」を追加して回避。
ただし、これだとテーブル一覧のページがこんどは逆にカッコ悪くなってしまうが、後日対策を検討することとしよう。
削除ボタンを押してみた。
...メッセージが英語。
/DynamicData/PageTemplate/List.aspx 内に、「削除」リンクボタンの OnClientClick プロパティに confirm 関数呼び出しがハードコードされているので、これを日本語の文面に変更して回避。
ところで、この一覧ページ、コマンド系のリンクボタンが左端にあるのが、少々気持ち悪い。
これは慣れとか文化の問題だったりするので、これでもいいのだとは思うが、ASP.NET の GridView のカラム自動生成の場合だとコマンド系のリンクボタン類は右端に配置されたりすることもあって、右端にコマンドを配置するのに慣れている。
Dynamic Data でも、右端に配置することができるんじゃないだろうか?
ということで、/DynamicData/PageTemplate/List.aspx をいじり、まずは GridView の RowDataBound イベントをハンドル。
<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource"
...OnRowDataBound="GridView1_RowDataBound">
/DynamicData/PageTemplate/List.aspx.cs にイベントハンドラを記述し、ここで列の差し替えを実装。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// 編集コマンド列を右端に差し替え
var _1stcell = e.Row.Cells[0];
e.Row.Cells.RemoveAt(0);
e.Row.Cells.Add(_1stcell);
}
これにて右端にコマンド系リンクボタンを配置することに成功。
Dynamic Data はあくまでひな形、スタートラインだと考えれば、これくらいいじるのはどうということはないのだが、しかし、フォントと削除時の英語メッセージくらいはもう少し気遣って頂ければうれしかったところ。
βかCTPかRCかのときに、コメントできていればよかったのだろうが、まぁ、こちらにも仕事の都合があるので、そこはやむを得ない。
遅まきながら、フィードバックセンターにでも投稿してみようかと思案中。