Avatar billede jriff Nybegynder
22. november 2006 - 09:28 Der er 6 kommentarer

Objectdatasource og Objekt

Hej Alle!

Jeg har en objectdatasource som tager typen 'test':

class test {
String test1
Int test2
List<ting> test3
}

class ting {
string beskrivelse
bool enabled
}

Jeg bruger så et detailsview til at vise objekter af klassen 'test' - fint nok!

I mit detailsview er der en checkboxlist som skal vise en checkbox for hver 'test3' i List<test>. Jeg sætter datasource for checkboxlisten til min objectdatasource og sætter DataTextField til "test3.beskrivelse" - det går ikke. Hvad gør man så i dette tilfælde? Jeg kunne lave en objectdatasource mere, men det er jo ikke den rigtige måde at gøre det på!
Avatar billede jriff Nybegynder
22. november 2006 - 09:36 #1
Ps. det er naturligvis pseudokode :-)
Avatar billede jriff Nybegynder
22. november 2006 - 12:04 #2
Der skulle have stået "for hver 'test3' i List<ting>. Undskylder fejlen!
Avatar billede snepnet Nybegynder
24. november 2006 - 23:25 #3
Hvis du vil lave det hele i aspx'en kan du gøre sådan her:

<asp:DataList DataKeyField="SomeNumber" ID="DataList1" runat="server" DataSourceID="SomeDataSource" >
    <ItemTemplate>
        SomeText:
        <asp:Label ID="SomeTextLabel" runat="server" Text='<%# Eval("SomeText") %>'></asp:Label><br />
        SomeNumber:
        <asp:Label ID="InnerDataLabel" runat="server" Text='<%# Eval("SomeNumber") %>'></asp:Label><br />
        <br />
        <asp:GridView ID="SomeGridView" runat="server" DataSource='<%# DataBinder.Eval(Container.DataItem, "InnerData") %>'>
        </asp:GridView>
        <br />
    </ItemTemplate>
</asp:DataList>
<asp:ObjectDataSource
    ID="SomeDataSource"
    runat="server"
    SelectMethod="GetNestedData"
    TypeName="DataAccess">
</asp:ObjectDataSource>

Mvh
Avatar billede snepnet Nybegynder
24. november 2006 - 23:31 #4
Ville nok være smart hvis jeg brugte de samme kontroller som dem du spørger til :o)

<asp:ObjectDataSource
    ID="SomeDataSource"
    runat="server"
    SelectMethod="GetNestedData"
    TypeName="DataAccess">
</asp:ObjectDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataSourceID="SomeDataSource" AllowPaging="True">
    <Fields>
        <asp:BoundField DataField="SomeNumber" />
        <asp:BoundField DataField="SomeText" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBoxList ID="chkList" runat="server" DataSource='<%# DataBinder.Eval(Container.DataItem, "InnerData") %>' DataTextField="SomeText" DataValueField="SomeNumber">
                </asp:CheckBoxList>
            </ItemTemplate>
        </asp:TemplateField>
    </Fields>
</asp:DetailsView>

Mvh
Avatar billede snepnet Nybegynder
24. november 2006 - 23:33 #5
DataSource='<%# Eval("InnerData") %>' er self. også fin nok.
Mvh
Avatar billede snepnet Nybegynder
07. maj 2007 - 19:04 #6
Et svar her, hvis du kunne bruge det til noget.
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