2011-12-13 10 views
9

Tengo una vista de cuadrícula como esta.CommandArgument en Gridview

<asp:GridView ID="grdMerchant" runat="server" GridLines="None" 
    HeaderStyle-Font-Bold="True" AutoGenerateColumns="False" AllowSorting="True" ShowHeader="false" OnRowDataBound="grdMerchant_RowDataBound" OnRowCommand="grdMerchant_RowCommand" DataKeyNames="OrderID" style="table-layout:auto;width:100%;" > 


<asp:TemplateField > 
<ItemTemplate> 
    <asp:Linkbutton ID= "btnView" runat="server" Text="View" OnClick="btnView_OnClick" CommandArgument='<%#Eval("OrderID")%>' ></asp:Linkbutton> 

¿Cómo tengo que conseguir el IdPedido de la fila seleccionada. Intenté usar

int OrderID = (int)grdMerchant.DataKeys[row.RowIndex][2]; 

Pero se pone nulo y sé que este no es el camino. Ayuadame.

¡Gracias de antemano!

Respuesta

20

tratan como esto

<asp:GridView ID="grd1" runat="Server" width="500px" AutoGenerateColumns="false" DataKeyNames="StateID" OnRowEditing="grd1_RowEditing"> 
    <Columns> 
     <asp:TemplateField> 
       <ItemTemplate> 
         <asp:LinkButton ID="btnDelete" runat="server" CommandArgument='<%#Eval("StateID")%>' OnCommand="lnkDelete" Text="Delete"> 
         </asp:LinkButton> 
       </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

protected void lnkDelete(Object sender, CommandEventArgs e) 
{ 
    int iStID=int32.Parse(e.CommandArgument.ToString()); 
} 

//iStID has the DataKey value which you can use.