Tôi có ba nút mỗi cuộc gọi btn_Clicked
trên sự kiện onClick
của họ. Trong mã phía sau tôi muốn nhận được ID của nút gây ra postback. Tôi biết tôi có thể chỉ định mỗi nút để gọi một phương pháp khác nhau nhưng tôi muốn tìm hiểu một chút về ASP.Net. Cũng cho tôi biết phương pháp nào hiệu quả hơn? Gọi các phương thức khác nhau trên các lần nhấp nút khác nhau hoặc gọi cùng một phương thức (nếu chức năng của mỗi nút giống nhau).Cách phát hiện nút nào được nhấp vào mã phía sau?
Trả lời
Truyền đối tượng người gửi đến nút và sau đó bạn có thể nhận tất cả các thuộc tính.
Button clickedButton = (Button)sender;
Đồng thời cho tôi biết phương pháp nào hiệu quả hơn? Gọi các phương thức khác nhau trên các lần nhấp nút khác nhau hoặc gọi cùng một phương thức (nếu chức năng của mỗi nút giống nhau).
Nếu chức năng giống nhau thì tốt hơn nên có một sự kiện duy nhất, vì bạn không phải sao chép mã. Hãy nhớ số DRY principle.
Hãy xem xét ví dụ sau:.
protected void Button1_Click(object sender, EventArgs e)
{
Button clickedButton = sender as Button;
if (clickedButton == null) // just to be on the safe side
return;
if (clickedButton.ID == "Button1")
{
}
else if(clickedButton.ID == "Button2")
{
}
}
Kiểm tra xem các sender
đối số của phương thức callback của bạn là tài liệu tham khảo tương tự như các nút bấm của bạn quan tâm đến
Button button1;
Button button2;
void OnClick(object sender, RoutedEventArgs args)
{
Button button = sender as Button;
if (button == button1)
{
...
}
if (button == button2)
{
...
}
}
Điều đó thực sự có một chút bất ngờ đối với tôi. Tôi nghĩ rằng == sẽ sử dụng 'Object.equals', mà sẽ kiểm tra nếu họ là cùng một tài liệu tham khảo. Phần nào không chính xác? – ceyko
Có thể thực hành tốt nhất để làm điều đó (và có thể là cần thiết), do đó chỉnh sửa của tôi :) – ceyko
Tôi sẽ tranh luận nếu thực hành tốt nhất hay không, điều gì sẽ xảy ra nếu bạn muốn truy cập ButtonID hoặc một số thông tin khác liên quan đến thuộc tính của nó . Bạn phải bỏ đối tượng vào nút, như bạn đang làm bây giờ – Habib
- 1. cách phát hiện nhấp chuột vào nút tab đã chọn
- 2. Cách phát hiện xem người dùng đã nhấp vào nút "quay lại"
- 3. Nút PyQT được nhấp vào tên
- 4. Cách phát hiện khi Nút trượt bị trượt, không được nhấp
- 5. Phát hiện Nhấp vào nút "Đặt hình nền" trong Bộ chọn hình nền động
- 6. android edittext xóa tiêu điểm sau khi nhấp vào nút
- 7. Làm cách nào để phát hiện xem nhấp chuột() là nhấp chuột hay được kích hoạt bởi một số mã?
- 8. Cách tắt nút ngay khi được nhấp vào
- 9. làm thế nào để phát hiện nút mà được nhấp sử dụng jQuery
- 10. Vô hiệu hóa nút sau khi nhấp vào vấn đề
- 11. Trang aspx có lập trình đóng từ mã phía sau
- 12. cách hiệu quả nhất để phát âm thanh khi nút được nhấp vào
- 13. Tăng số bằng cách nhấp vào nút
- 14. Nhấp vào nút hủy showInputDialogue
- 15. Làm cách nào để bạn kiểm tra nút gửi bị tắt sau khi nhấp vào capybara?
- 16. Phát hiện khi người dùng nhấp vào nút dán trong UITextView
- 17. Cách bật bluetooth khi nhấp vào nút
- 18. Ẩn ASPxPopupControl từ mã phía sau
- 19. Làm cách nào để phát hiện các nút quay lại/chuyển tiếp được nhấp khi sử dụng History.js?
- 20. Cách bỏ qua Xác thực sau khi nhấp vào nút Hủy của biểu mẫu
- 21. Cách chạy telerik RadWindow từ mã phía sau
- 22. nút radio chọn trên nhãn nhấp vào
- 23. Phát hiện nhấp vào phần tử bên ngoài?
- 24. jQuery ẩn nếu được nhấp vào bên ngoài nút
- 25. Làm cách nào để chạy mã phía máy khách và máy chủ cho cùng một nút?
- 26. Cách tạo hộp văn bản trống ở mã phía sau
- 27. Phát tệp âm thanh từ internet khi một nút được nhấp vào
- 28. Nút Thích của Facebook đảo ngược trạng thái 'không được đánh dấu' sau khi nhấp vào
- 29. Làm thế nào để thực hiện hành động sau DialogFragment nút tích cực nhấp
- 30. phát hiện nhấp chuột vào một hình ảnh
Sử dụng các object sender trong trường hợp xử lý. – ryadavilli
Tìm hiểu mvc thay vì – Jeroen