いくつかのカラムと設定を共有するGridViewとDataSourceがありますので、DataControlFieldCollection
を与えて、aspxファイルにカラムを追加できるようにしました。このように、私はこれを行うことができます:実行時にGridViewにTemplateFieldを追加する
<mine:PreGeneratedGridView runat="server">
<Columns>
<asp:BoundField DataField="mycolumn"
HeaderText="My Header" SortExpression="mycolumn" />
</Columns>
</mine:PreGeneratedGridView>
を私は私のPreGeneratedGridView
UserControl
に含まれているGridView
に追加の列を移動するには、このコードを使用しています:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < Columns.Count; ++i)
{
if (IsPostBack) myGridView.Columns.RemoveAt(i);
myGridView.Columns.Insert(i, Columns[i]);
}
}
それは醜いビットとして私を打つ(とおそらくフラットアウト間違って、それは動作しているようだが)、すべてのページの負荷でGridView
に列を追加するが、Page_Init
にこの列読み込みコードを入れようとしたときに、TemplateField
の列が実行されないように空白ですが、ヘッダはありませんでした) PostBack
。
このようにPage_Load
/IsPostBack
を使用せずにカラムをロードする方法はありますか?
を私は理解していません。ポストバックで、単にテーブルの列で何もしないとどうなりますか? –
@Andrew: 'TemplateField'列はヘッダーを除いて空白になります。 – Brian