c#/Asp.Net: Objectdatasource
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