その場で GridView を構築しています。オンデマンドで含まれる TemplateFields を事前に定義したいと思います。したがって、私がやりたいことは、さまざまなテンプレートが特定の列をどのように探すかを定義する宣言ファイルを用意することです。お気に入り:
<asp:TemplateField>
<HeaderTemplate>
this is a text column
</HeaderTemplate>
<ItemTemplate>
data goes here
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text="databindhere" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
this is a bool column
</HeaderTemplate>
<ItemTemplate>
if(true) "yes" else "no"
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox Checked="databindme" />
</EditItemTemplate>
</asp:TemplateField>
したがって、クエリにテキスト フィールドと 2 つの bool フィールドがある場合、必要に応じて適切な TemplateFields を Columns プロパティにプッシュできます。(ここで意味を成していることを願っています)
では、上記の定義の宣言ファイルを作成するにはどうすればよいでしょうか。そして、これらの定義をプログラムで参照するにはどうすればよいでしょうか?
わかりました。System.Web.UI.WebControls.TemplateField をサブクラス化するのが最も効果的ですが、そうすると、<%@ Register %> ディレクティブでオブジェクトを使用できないようです。可能であれば、新しい派生物を使用していくつかの UserControls を作成し、必要に応じてそれらをグリッドの列に LoadControl() および Add() します。
何か案は?