2010-12-04 7 views
1

J'ai un Gridview comme celui-ci.Comment obtenir la valeur SelectedDataKey dans l'événement GridView RowCommand?

<asp:GridView runat="server" ID="gvMRLSearch" Width="100%" AutoGenerateColumns="false" 
           CssClass="datagrid" DataKeyNames="MRLID" > 
<Columns> 
    <asp:BoundField DataField="MRLID" HeaderText="MRL ID" Visible="false" /> 
    <asp:BoundField DataField="MRLCreateDate" HeaderText="MRL Create Date" /> 
    <asp:BoundField DataField="MRLNumber" HeaderText="MRL Number" /> 
    <asp:ButtonField ButtonType="Link" CommandName="printReport" Text="Print" HeaderText="Action" /> 
</Columns> 
</asp:GridView> 

Je souhaite obtenir la valeur MRLID sur l'événement GridView_RowCommand. J'ai essayé comme ceci:

protected void gvMRLSearch_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    try 
    { 
     if (e.CommandName == "printReport") 
     { 
     int MRLID = Convert.ToInt32(gvMRLSearch.SelectedDataKey.Value); 

Mais je reçois seulement la première ligne MRLID que, si la seconde sélectionne à nouveau je reçois la première ligne MRLID.

Répondre

1

Je suis la réponse.

if (e.CommandName == "printReport") 
     { 
      int rowindex = Convert.ToInt32(e.CommandArgument); 
      int MRLID = Convert.ToInt32(gvMRLSearch.DataKeys[rowindex].Value); 
2

C'est parce que lorsque vous appelez gestionnaire d'événements RowCommand, il ne changera pas la ligne sélectionnée de jeu de propriétés SelectedIndex grille

de la grille

+0

merci pour votre réponse Saurabh. – thevan

Questions connexes