Avatar billede davidfossil Nybegynder
03. marts 2005 - 18:25 Der er 1 kommentar og
1 løsning

DataGrid med BoundColumns bundet til objekter

I et DataGrid ønsker jeg at have følgende to kolonner:

<asp:BoundColumn DataField="Product.Name" HeaderText="Produkt" />
<asp:BoundColumn DataField="Quantity" HeaderText="Antal" />

Dette grid har en datasource som er en collection af en objekt type, der har de to Public attributter Product (som er af typen produkt) og Quantity som er en int.

Quantity vises fint, men det ser ikke ud til at være muligt at finde Product.Name (som er en string), da denne attribut hører til et objekt under det oprindelig objekt. Kan dette slet ikke lade sig gøre? Bliver jeg nødt til at lave en Name attribut der kan sende produktnavnet videre?
Avatar billede snepnet Nybegynder
04. marts 2005 - 18:11 #1
hej david :o)
et almindeligt databindingsudtryk som dette :
<asp:TextBox id="tb" Text='<%# SomeString %>' runat="server">
kan du godt lave sådan her :
<asp:TextBox id="tb" Text='<%# SomeClass.SomeString %>' runat="server">

men jeg tror du bliver nødt til at lifte din variabel som en property, hvis du vil lave tricket med en boundcolumn.

Men.... du kan jo lave din kolonne om til en TemplateColumn - så vil det virke.
Du kan få et løst eksempel her :

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundColumn DataField="SomeString" HeaderText="String"></asp:BoundColumn>
        <asp:TemplateColumn HeaderText="InnerString">
            <ItemTemplate>
                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.InnerClass.SomeInnerString") %>'>
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>

du skulle så kunne hælde data ind sådan her :
SomeClass[] objects = {new SomeClass(), new SomeClass()};
DataGrid1.DataSource = objects;
DataBind();

med klasser som følger :

public class SomeClass
{
    public SomeInnerClass InnerClass
    {
        get{return new SomeInnerClass();}
    }
   
    public string SomeString
    {
        get{return "SomeString";}
    }
}

public class SomeInnerClass
{
    public string SomeInnerString
    {
        get{return "SomeInnerString";}
    }
}

Kan du leve med det ?

mvh
snep
Avatar billede snepnet Nybegynder
07. september 2005 - 17:48 #2
hej david.
jeg lægger et svar her, hvis ovenstående var ok :o)
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester