<asp:TemplateField>
<ItemTemplate>
<table width="540" cellpadding="5">
<tr>
<td align="left" style="width:60%;">
<img src='PurchaseHandler.ashx?ProductID=<%# Eval("ProductID")%>'
alt="<%# Eval("ProductName") %>" />
</td>
<td align="left">
<h3 style="text-align:left;">
<asp:Label ID="nameLabel" runat="server"
Text='<%# Eval("ProductName") %>' />
</h3>
<asp:Label ID="priceLabel" runat="server" Text='<%# Eval("Price") %>' />
<br />
<asp:LinkButton ID="cartLink" runat="server" Text="<b>Add to Cart</b>"
CommandName="Add" CommandArgument='<%# Eval("ProductID") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
J'utilise un objet métier de panier qui contient des champs non utilisés pour l'affichage dans GridView. Ce que j'essaie de faire ensuite dans le gestionnaire d'événements RowCommand est de récupérer le reste des champs de données de la ligne sélectionnée. Cela me donne l'ID de produit correct à partir de la ligne sélectionnée:GridView Template - Comment saisir des données de la ligne sélectionnée
if (e.CommandName == "Add")
{
int productID = 0;
int.TryParse(e.CommandArgument as string, out productID);
// Big blank!
}
Comment puis-je saisir le reste des champs de données de la ligne sélectionnée pour remplir mon panier? À titre d'explication, je peux probablement utiliser le productID pour creuser dans le DataSet tiré de l'état de Session, et obtenir les données de cette façon. Cependant, ce que j'essaye de déterminer est s'il y a une syntaxe semblable à ceci qui peut être employée dans cette situation?
DataRow[] rows = ds.Tables[0].Select("ProductID=" +
gridProducts.SelectedDataKey.Values["ProductID"].ToString());
DataRow row = rows[0];
Salut David, Merci pour vos commentaires. J'ai édité la question pour expliquer plus loin que c'est l'autre, les champs de non-affichage, dans le DataSet que je suis après. Je peux y accéder en utilisant le productID que j'ai déjà obtenu. Cependant, quelque chose me dit qu'il y a une approche plus élégante à cela ... TemplateFields me confond toujours quand dans ce type de scénario. Anthony :-) – IrishChieftain
Merci David, Voilà la réponse! J'ai été en mesure d'obtenir les données directement à partir du DataSet. Anthony :-) – IrishChieftain
Pour le bénéfice des autres, j'ai obtenu l'index de la ligne sélectionnée en bouclant à travers les lignes de table du DataSet pour obtenir une correspondance sur le productID obtenu plus tôt. Ensuite, j'ai eu accès au reste des données. – IrishChieftain