バージョン

項目テンプレートの作成時にセルを参照

コードで WebDataGrid™ のための項目テンプレートを作成するには、ITemplate インタフェースの InstantiateIn メソッドを実装することが必要となります。このメソッド内でセルの値を取得する必要がない場合、WebDataGrid オブジェクトを直接参照するだけで値にアクセスできません。

セルの値を取得するには、メソッドに渡された Container の DataItem への参照を取得する必要があります。テンプレートが項目テンプレートの時に、この DataItem は DataRowView です。DataRowView によって、その行のセルにアクセスできます。

以下のコードは、コードで項目テンプレートを作成する時、ラベルのテキストに対して設定するセルの値を取得する方法を示します。

Visual Basic の場合:

Private Class CustomItemTemplate
    Implements ITemplate
    #Region "ITemplate Members"
    Public Sub InstantiateIn(container As Control) Implements ITemplate.InstantiateIn
        Dim label1 As New Label()
        label1.ID = "TemplateLabel"
' DataItem からセル値を取得します。
        label1.Text = DirectCast(DirectCast(container, TemplateContainer).DataItem, DataRowView)("CustomerID").ToString()
        container.Controls.Add(label1)
    End Sub
    #End Region
End Class

C# の場合:

private class CustomItemTemplate : ITemplate
{
	#region ITemplate Members
	public void InstantiateIn(Control container)
	{
		Label label1 = new Label();
		label1.ID = "TemplateLabel";
		// DataItem からセル値を取得します。
		label1.Text = ((DataRowView)((TemplateContainer)container).DataItem)["CustomerID"].ToString();
		container.Controls.Add(label1);
	}
	#endregion
}