2010-06-09 4 views
0

Je rêve de créer un contrôle qui fonctionne quelque chose comme ceci:sur mesure DataSource Extender

<asp:SqlDataSource 
     id="dsFoo" 
     runat="server" 
     ConnectionString="<%$ ConnectionStrings:conn %>" 
     SelectCommandType="StoredProcedure" 
     SelectCommand="cmd_foo"> 
</asp:SqlDataSource> 

<Custom:DataViewSource 
    id="dvFoo" 
    runat="server" 
    rowfilter="colid &gt; 10" 
    datasourceid="dsFoo"> 
</Custom:DataViewSource> 

je peux faire la même chose dans le code derrière en exécutant cmd_foo, chargeant les résultats dans un DataTable, puis de les charger dans un DataView avec un RowFilter. Le but serait d'avoir plusieurs DataView s pour un DataSource avec tous les filtres spéciaux que je souhaite appliquer à la partie sélectionnée du DataSource. Je pourrais imaginer étendre cela pour être plus puissant.

J'ai essayé de culminer à this et this mais je suis un peu confus sur quelques points.

Actuellement, mon principal problème est de ne pas savoir où saisir les données de sortie du DataSource afin que je puisse le coller dans un DataTable.

Répondre

0

Le code je suis coincé à:

DataView dv = dsFoo.Select(DataSourceSelectArguments.Empty) as DataView; 
DataTable dt = dv.ToTable() 

La deuxième ligne est probablement inutile puisque l'objectif initial était de transformer un DataSource en DataView.

Bien sûr, en regardant ce genre de choses me dit que SqlDataSource a déjà FilterExpression ...