2011-07-13 12 views
1

GridViewでTemplateColumnsを使用すると、この例で詳述されていることが可能であるかどうかは誰にでも分かります。 http://www.codeproject.com/KB/webforms/CustomDataGridColumn.aspxGridviewで複数のデータ型を1つの列にバインドする

列内に1つのデータ型を持つ必要のないGridViewを動的に生成する必要があります。列1がチェックボックスやテキストボックスコントロールを持つことができます(論理に基づいて)

ITemplateを実装し、InstantiateIn()でカスタムコントロールを追加しようとしましたが、アイテムレベルではなくレベルで表示されます。

これはどのように達成できますか?

ありがとうございます。私は質問にもっと明確化が必要な場合は、私が持っているコードを抜き出すことができます。

答えて

2

はい、TelerikのRadGridはこれをサポートしています。

同じコードはわずかな変更でのみ動作します。たとえば、ListItemTypeGridItemTypeになります。 DataGridItemGridDataItemなどになります。また、Telerikがコントロールを作成する方法は、一部のインデックスを変更する必要があることを意味します。例えば、そのItemDataBoundイベントはこのコードを持っています

string dataType = e.Item.Cells[0].Text; 

しかしであることが必要Telerik RadGrid、と:小さな変更のそれらの種類以外

string dataType = e.Item.Cells[2].Text; 

、それはすべてのRadGridで動作します。

注:Telerikのコードサンプルを見ると、通常は別のルートになります。私がそれらがセルのカスタムコンテンツを提供するのを見たのは、ItemCreatedイベントにカスタマイズロジックを置くことです。これは各行に対して呼び出されます。したがって、列のテンプレートにすべての可能なコントロールが含まれ、次にItemCreatingイベントで、ロジックに基づいて正しいコントロールをVisibleに設定することで、そのテンプレートのインスタンスを変更できます(リンク先の記事で使用されている方法です)。または、正しい種類のコントロールのために、そのイベントで単一の特定のコントロールのみを作成することもできます。 Here is the documentationのItemCreatedイベントと、各行のLinkBut​​tonを変更するTelerikのコードサンプルも同じアプローチを使用できます。

+0

詳細な回答ありがとうございます。とても助かりました –

関連する問題