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
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
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
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 !
Partager