2009-03-06 3 views
0

Hallo Ich habe eine Liste, die ein Array von "Frage" zurückgibt. Meine Frage ist, wie kann ich dies an eine Rasteransicht binden? Wenn ich versuche, Question.Ordinal aufzurufen, bekomme ich, dass es in der Datenquelle nicht existiert. Ich verwende den folgenden Code ein:Binding Generic List Array zu GridView

GridView1.DataSource = myList.GetQ(); 
GrdiView1.DataBind(); 

myList.GetQ() gibt eine Liste, die eine Reihe von „Frage“ ist.

Wenn ich die Spalte DataField auf "!" Ich bekomme das Objekt Frage. Meine Frage ist, wie kann ich die Objekteigenschaft bekommen? Ich habe versucht "! .Ordinal" funktioniert nicht. Ich habe diesen Beitrag als Referenz gelesen, here, jede Hilfe wird sehr geschätzt, danke.

Antwort

1

Versuchen Sie, die folgende Syntax verwendet:

<%# ((MyObject)Container.DataItem).MyField %> 
+0

Ich erhalte einen Parser-Fehler: Datenbindung Ausdrücke werden nur auf Objekte unterstützt, die ein Databinding-Ereignis haben. System.Web.UI.WebControls.BoundField hat kein DataBinding-Ereignis. –

+0

Es funktioniert! @Rob Z Danke! – Chintan

1

Gerade sie gesetzt direkt auf Ordinal als erste Beispiele in dem Beitrag, den Sie gerade verknüpft haben:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
<Columns> 
    <asp:BoundField HeaderText="ID" DataField="CustId" /> 
    <asp:BoundField HeaderText="Name" DataField="Name" /> 
    <asp:BoundField HeaderText="City" DataField="City" /> 
</Columns> 
</asp:GridView> 

Sprich:

<asp:BoundField HeaderText="A Header" DataField="APropertyOfQuestion" /> 
1

müssen Sie die Eigenschaft Member der Klasse sein, zu definieren, als propery dh

public string ProductName 
{ 
    get 
    { 
     return _productName; 
    } 
    set { } 

} 

Oder VB

öffentliches Eigentum Product() als String Satz ..

erhalten ...

Ende Eigenschaft

wichtig: Ist definiert get-Methode Erforderlich