Récupération des propriétés
Bonjour,
J'ai une gridview sur laquelle j'ai bindé une liste générique.
Toutes les cellules de ma gridview seront cliquables une recherche en "2" dimensions. (si je clique sur la ligne 1, colonne 3 je récupérerai les données de la ligne 1, colonne 3 pour faire une recherche apres)
Apres une recherche, j'ai vu les solutions suivantes
1) Exemple
Code:
1 2 3 4 5
| <asp:TemplateField HeaderStyle-Width="15%" HeaderText="<%$ Resources:Resources, LastExecution %>">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lkLastExecution" CommandName="LastExecution" CommandArgument='<%# Container.DisplayIndex %>'><%# DataBinder.Eval(Container.DataItem,"LastExecution") %> </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField> |
et réitérer pour chaque "colonne".
2) Ensuite, dans la définition du gridview, j'ai
Code:
DataKeyNames="Name,LastExecution"
et ainsi de suite pour toutes les propriétés.
3) Binding de la list au niveau du page_load
4) Dans le code, j'ai
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| private void gv_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
int numRow = Convert.ToInt16(e.CommandArgument);
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.GroupName = (string)gv.DataKeys[numRow]["Name"];
switch (e.CommandName)
{
case "LastExecution" :
searchCriteria.StartDate = (DateTime?)gv.DataKeys[numRow]["LastExecution"];
break;
default:
break;
}
ContextJobGroup.Instance.Criteria = searchCriteria;
} |
Donc plusieurs soucis parce que c'set qd mm bien lourd...
1) Comme puis-je récupérer les propriétés d'une classe? Je souhaiterais utiliser cela pour rajouter les datakeynames dans le code
2) y a t il une manière propre pour faire le switch case sur les commandes?
Parce que la, je vais devoir faire "à la main" les différents cas...
Merci !