c#/Asp.Net: Objectdatasource

No comments

Strevde med å få en Objectdatasource til å virke i Designmode.

 

Trikset var: bruk properties i stedet forfields i ditt Business Object.

 

Hvis ikke får du ikke Design-time goodness :)

 

Her er kode som virker:

(metoder osv er forenklet for å illustrere konseptet uten ågjøre eksempelet for stort)

 

 

.CS (bør ligge i App_Code)

 

 

Mitt dataobjekt som altså nå har properties:

 

 

    public class RapportPeriode

    {

        public string Type {get;set;}

        public int HendelseTypeID {get;set;}

        public int Totalt {get;set;}

 

    }

 

/*********************************************************************

            denne klassen kan ikke benyttes som utgangspunktfor Objectdatasource

            den har fields som verdier i stedet forproperties

    public class RapportPeriode

    {

        public string Type;

        public int HendelseTypeID;

        public int Totalt;

    }

 

*********************************************************************/

 

 

//Klasse du bruker mot Objektdatasource:

public class RapportHjelper

    {

    

        public List<RapportPeriode> GetData(int År)

        {

 

               List<RapportPeriode> liste = newList<RapportPeriode>();

 

 

                RapportPeriode rad = new RapportPeriode();

                rad.Type = "Totalt"

                rad.HendelseTypeID = 0;

                rad.Totalt = 100;

 

                liste.Add(rad);

 

                rad = new RapportPeriode();

                rad.Type = "Noe "

                rad.HendelseTypeID = 1;

                rad.Totalt = 7;

 

                liste.Add(rad);

       

                return liste;           

 

        }

 

}

 

 

 

 

.ASPX:

 

          <asp:GridView ID="GridView1"runat="server" DataSourceID="ds"

                AutoGenerateColumns="False">

                <Columns>

                    <asp:BoundFieldDataField="Type" HeaderText="Type"SortExpression="Type" />

                    <asp:BoundFieldDataField="HendelseTypeID" HeaderText="HendelseTypeID"

                        SortExpression="HendelseTypeID"Visible="false" />

                    <asp:BoundFieldDataField="Totalt" HeaderText="Totalt"

                        SortExpression="Totalt"/>

                </Columns>

            </asp:GridView>

     

          

    <asp:ObjectDataSource

        ID="ds" runat="server"

        SelectMethod="GetData"

        typename="RapportHjelper" >

       

        <SelectParameters>

            <asp:ControlParameterControlID="lblPeriode" DefaultValue="DateTime.Now.Year"

                Name="År"PropertyName="Text" Type="Int32" />

        </SelectParameters>

    </asp:ObjectDataSource>

 

Posted by email from Henris blogg (posterous)

No comments :

Post a Comment