2008-09-17 31 views

Trả lời

2

Tại sao bạn cần xác định TextBox nào đã được nhấn? Bạn đang tìm kiếm xem TextBox nào đang được tập trung sao cho bạn có thể kích hoạt sự kiện nhấn nút thích hợp?

Nếu bạn đang tìm cách làm một cái gì đó như thế này, một mẹo tôi đã làm là "nhóm" các phần tử biểu mẫu thích hợp trong bảng điều khiển của riêng họ và sau đó đặt thuộc tính "DefaultButton" cho phù hợp.

Thực hiện việc này cho phép tôi có "Tìm kiếm theo tên", "Tìm kiếm theo tên", "Tìm kiếm theo Id", vv Kết hợp hộp văn bản/nút trên một biểu mẫu và vẫn cho phép người dùng nhập thông số truy vấn của họ, nhấn Enter và có phương thức tìm kiếm thích hợp được gọi trong mã phía sau.

+0

vấn đề là tôi có ba trường và hai nút. tên người dùng/mật khẩu và tìm kiếm. mỗi cần xác thực riêng biệt và hành động mặc định phải trực quan. Tôi đã dành rất nhiều thời gian ngày hôm nay về điều này và tôi không thể tin rằng làm thế nào khó khăn này là để làm bằng cách sử dụng WebForms ... –

2

Tôi nghi ngờ nó không thể được thực hiện mà không có javascript - khi bạn nhấn enter, trình duyệt sẽ gửi biểu mẫu - nó không gửi trường nào có tiêu điểm. Vì vậy, trừ khi bạn sử dụng JS để thêm thông tin đó vào biểu mẫu đang được gửi đi, bạn đã hết may mắn.

1

Không sử dụng Javascript, bạn không thể. Thông tin đó không được chuyển tải từ trình duyệt máy khách đến máy chủ.

1

Theo như tôi biết không có cách nào có thể cho tập lệnh phía máy chủ để phát hiện điều đó. Nó chỉ đơn giản là không nhận được gửi đến máy chủ. Nó phải được thực hiện phía máy khách (tức là với Javascript) và sau đó được gửi đến máy chủ.

1

Tôi đã giải quyết điều này cho tìm kiếm của một trang web bằng cách xem đối tượng Request.Form, phía máy chủ để xem hộp tìm kiếm có giá trị hay không. Tôi đã làm nó trong một lớp cơ sở mà tất cả các trang của tôi (hoặc một lớp cơ sở cho masterpage) kế thừa từ. Nếu nó có một giá trị, tỷ lệ cược là khá tốt ai đó gõ một cái gì đó trong và nhấn enter và vì vậy tôi xử lý tìm kiếm.

+0

Yea. Đó là những gì tôi đang làm nhưng bây giờ việc xác thực cho tên người dùng/mật khẩu cũng đang được khởi chạy bởi nút tìm kiếm. Tôi đang sử dụng ValidationGroup nhưng nó không hoạt động. –

1

Trong trình xử lý sự kiện, đối tượng "nguồn" (tham số đầu tiên của trình xử lý sự kiện) là đối tượng nâng cao sự kiện. Gõ nó vào nút và lấy tên, hoặc sử dụng sự phản chiếu để lấy thông tin ra khỏi đối tượng không gõ. Ngoài ra, nếu điều khiển là con của một điều khiển web mà bạn không có sự kiện riêng của mình (chỉ cần nói ...) thì bạn có thể sử dụng OnBubbleEvent để xác định những gì đang diễn ra. OnBubbleEvent cũng có tham số "nguồn" bạn có thể nhập hoặc sử dụng phản chiếu.

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