Tags: , | Categories: Entity Framework, LINQ, VB.Net Posted by Christoph on 1/15/2009 12:34 PM | Comments (0)

In einem Projekt benutze ich das Microsoft Entity Framework um Daten aus der Datenbank an ein Gridview zu binden.

Nun will ich aber zeilenweise bestimmte Zellen ausblenden, wenn das Datenobjekt z.B. bestimmte Arten von Eigenschaften/Kindern hat.

Um im RowDataBound Handler des Gridview aber das jewilige Entity zu bekommen, benötigt man eine kleine Hilfsfunktion:

 

Public Function GetRowItem(Of TEntity As Class)(ByVal dataItem As Object) As TEntity    Dim Entity = TryCast(dataItem, TEntity)    If Entity IsNot Nothing Then Return Entity    Dim td = TryCast(dataItem, ComponentModel.ICustomTypeDescriptor)    If td IsNot Nothing Then Return DirectCast(td.GetPropertyOwner(Nothing), TEntity)    Return NothingEnd Function
Danach kann man dann in der RowDataBound folgenden Code benutzen, um die Entität (in meinem Fall fom Typ "Attribute”) zu bekommen:

 

Private Sub gvAttribs_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvAttribs.RowDataBound    If e.Row.RowType = DataControlRowType.DataRow Then        Dim Attrib = GetRowItem(Of Attribute)(e.Row.DataItem)		'-- Und hier gehts dann weiter ...    End IfEnd Sub

 

Ich habe diesen Hinweis im MSDN Social gefunden.

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading