Laden...

[gelöst] BoundField: auf Eigenschaft einer untergeordneten Klasse zu greifen

Erstellt von typhos vor 16 Jahren Letzter Beitrag vor 16 Jahren 864 Views
T
typhos Themenstarter:in
243 Beiträge seit 2006
vor 16 Jahren
[gelöst] BoundField: auf Eigenschaft einer untergeordneten Klasse zu greifen

Hi,
ich habe ein GridView, in dem ich mir automatisch die Eigenschaften einer Liste mit Bankverbindungsdaten anzeigen lasse.
Die Klasse hat die Eigenschaften KtoNr, KtoName, KtoOrt (die drei sind vom Typ String) und Bank (ist ne eigene Klasse mit den Eigenschaften Name, Blz usw.).

Gibt es eine einfache Möglichkeit, wie ich mir in der Liste auch den Namen und die Blz der Bank anzeigen lassen kann?
Ich dachte erst, es würde vielleicht so gehen:

 <asp:GridView ID="gvBankverbindungen" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="KtoName" HeaderText="Konto Name" />
                <asp:BoundField DataField="KtoOrt" HeaderText="Konto Ort" />
                <asp:BoundField DataField="KtoNr" HeaderText="Konto Nummer" />
                <asp:BoundField DataField="Bank.Blz" HeaderText="Bankleitzahl" />
                <asp:BoundField DataField="Bank.Name" HeaderText="Name der Bank" />
            </Columns>
    </asp:GridView>

Aber so geht es leider nicht. Dann dachte ich an eine ToString()-Methode in Bank, die mir den Namen ausgibt. Dann könnte ich mit DataField="Bank" zumindest den Namen anzeigen. Aber dann habe ich immer noch nicht die Blz...

Kann mir bitte jemand dabei helfen?

I
256 Beiträge seit 2005
vor 16 Jahren

Geht mMn nach nicht "auf Eigenschaft einer untergeordneten Klasse zu greifen".

Kannst nur auf die Eigenschaften der Basisklasse zugreifen.

Musst halt die Properties, nach aussen mappen.

T
typhos Themenstarter:in
243 Beiträge seit 2006
vor 16 Jahren

Ja, aber genau das wollte ich nicht... Aber ich habe nun eine andere Lösung gefunden: TemplateField. Das nutze ich dann in der Art:

<asp:TemplateField HeaderText="Bankleitzahl">  
                    <ItemTemplate>  
                     <asp:Label ID="Label1" runat="server" Text='<%# Eval("Bank.Blz") %>' />
                    </ItemTemplate>
                </asp:TemplateField>