7

グリッドには処理する必要がある条件付きリクエストがいくつかあるため、データグリッドを操作し、PageInit で列を動的に追加する必要がある状況があります。私は BoundColumns と ButtonColumns を簡単に使用しています。これらは簡単です。問題は、コードによる TemplateColumn の作成にあります。ITemplate の実装を使用するクラスを作成して、コントロールを動的に追加するカスタム クラスを作成する例をいくつか見つけました。それは機能しますが、要素をデータバインドする方法に苦労しています。

私のグリッドでは、 <%= DataBinder.Eval(Container.DataItem, "MyValue") %> などを使用していましたが、ここではオプションではありません。ITemplate 内のコンテナにもデータ項目プロパティがないため、そこにバインドできません。誰でも役立つアドバイスやリンクを持っていますが、私はグーグルで正しいものを見つけていません。

4

1 に答える 1

8

この MSDN Articleのように、ITemplate.InstantiateIn で作成したコントロールの DataBinding イベントにイベント ハンドラーをアタッチできます。送信者はコントロールになり、NamingContainer プロパティは DataGridItem になります。これには、必要なデータを取得するために使用できる DataItem への参照があります。

于 2008-11-21T02:58:07.323 に答える