2012-07-24 36 views
5

Tôi đang cố gắng chuyển giá trị CustomerID tới codebehind, từ LinkButton trong điều khiển GridView của tôi. Tôi đã thử giải pháp đề xuất here nhưng nó không hoạt động.Truyền giá trị id cho sự kiện phía máy chủ LinkButton trong điều khiển GridView

đang GridView của tôi là:

<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) 
{ 

} 

Làm thế nào tôi có thể nhận được giá trị ID Khách hàng trong trường hợp EditCustomer?

+0

Nó sẽ không chỉ đơn giản là được 'sender.id'? –

Trả lời

10

Youc một vượt qua CustomerID như 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> 

Bây giờ bạn có thể xử lý của Command event LinkButton:

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

Cảm ơn Tim. Mã phía sau xuất hiện như thế nào? Tôi nhận được một lỗi "Không có tình trạng quá tải cho 'EditCustomer' khớp với đại biểu 'System.EventHandler'" – DotNetRookie

+0

@DotNetRookie: Đã chỉnh sửa câu trả lời của tôi để cho thấy cách bạn xử lý sự kiện Command của LinkButton. –

+0

Cảm ơn rất nhiều @Tim – DotNetRookie

Các vấn đề liên quan