2012-07-24 12 views
5

Sto provando a passare un valore CustomerID a codebehind, dal mio LinkButton nel mio controllo gridview. Ho provato la soluzione suggerita here ma non funziona.Passaggio di un valore id a evento side server LinkButton nel controllo gridview

Il mio codice è gridview:

<asp:TemplateField HeaderText="Last Name, First Name"> 
    <ItemTemplate> 
     <asp:LinkButton OnClick="EditCustomer" id="lbtnCustomerName" CommandName="CustomerName" Visible="true" runat="server" ToolTip="Click to edit customer."><%# DataBinder.Eval(Container.DataItem, "custLastName") + ", " + DataBinder.Eval(Container.DataItem, "custFirstName" + ", " + DataBinder.Eval(Container.DataItem, "custID")%></asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 


protected void EditCustomer(Object sender, EventArgs e) 
{ 

} 

Come posso ottenere il valore custID in caso EditCustomer?

+0

Non sarebbe semplicemente 'sender.id'? –

risposta

10

youc un pass il CustomerID come CommandArgument:

<asp:LinkButton OnClick="EditCustomer" id="lbtnCustomerName" 
    CommandArgument='<%#Eval("CustomerID")%>' 
    CommandName="CustomerName" 
    OnCommand="LinkButton_Command" 
    Visible="true" runat="server" 
    ToolTip="Click to edit customer."><%# DataBinder.Eval(Container.DataItem, "custLastName") + ", " + DataBinder.Eval(Container.DataItem, "custFirstName" + ", " + DataBinder.Eval(Container.DataItem, "custID")%> 
</asp:LinkButton> 

Ora è in grado di gestire il Command event LinkButton:

void LinkButton_Command(Object sender, CommandEventArgs e) 
{ 
    String CustomerID = e.CommandArgument.ToString(); 
} 
+0

Grazie Tim. Come apparirebbe il codice dietro? Ricevo un errore "Nessun sovraccarico per" Modifica cliente "corrisponde a delegato" System.EventHandler "" – DotNetRookie

+0

@DotNetRookie: Modificata la mia risposta per mostrare come gestisci l'evento Command di LinkButton. –

+0

Grazie mille @Tim – DotNetRookie