2008-09-11 33 views
5

Tôi thích HtmlControls vì không có ma thuật HTML đang diễn ra ... nguồn asp trông giống như những gì khách hàng nhìn thấy.Khi nào sử dụng HtmlControls và WebControls

Tôi không thể tranh luận với tiện ích của GridView, Repeater, CheckBoxLists, v.v., vì vậy tôi sử dụng chúng khi tôi cần chức năng đó.

Ngoài ra, có vẻ kỳ lạ để có mã hỗn hợp và các trận đấu:

<asp:Button id='btnOK' runat='server' Text='OK' /> 
<input id='btnCancel' runat='server' type='button' value='Cancel' /> 

(Các trường hợp nêu trên trong trường hợp bạn muốn để ràng buộc một sự kiện nghe server-side để OK nhưng Hủy bỏ chỉ chạy một javascript ẩn div hiện tại)

Có một số hướng dẫn về phong cách dứt khoát không? HtmlControls có nên tránh được không?

Trả lời

5

Có thể hữu ích khi nghĩ về các điều khiển HTML dưới dạng tùy chọn khi bạn muốn kiểm soát nhiều hơn đối với đánh dấu mà cuối cùng sẽ được trang của bạn phát ra. Kiểm soát nhiều hơn theo ý nghĩa rằng bạn muốn MỌI trình duyệt để xem chính xác cùng một đánh dấu.

Nếu bạn tạo System.Web.UI.HtmlControls như:

<input id='btnCancel' runat='server' type='button' value='Cancel' /> 

Sau đó, bạn biết những gì loại mã sẽ được phát ra. Mặc dù hầu hết thời gian:

<asp:Button id='btnCancel' runat='server' Text='Cancel' /> 

sẽ kết thúc bằng cùng một đánh dấu. Đánh dấu tương tự không phải lúc nào cũng được phát ra cho tất cả các WebControls. Nhiều WebControls đã xây dựng trong hiển thị thích nghi sẽ hiển thị HTML khác nhau dựa trên tác nhân người dùng trình duyệt. Ví dụ, một DataGrid sẽ trông khá khác trong trình duyệt trên thiết bị di động so với trình duyệt trên máy tính để bàn.

Sử dụng WebControls như trái ngược với HtmlControls cũng cho phép bạn tận dụng lợi thế của ASP.NET v2.0 ControlAdapters mà tôi tin rằng chỉ hoạt động với WebControls, điều này sẽ cho phép bạn lập trình điều khiển cấu hình điều khiển đánh dấu được phát ra.

Điều này có vẻ có giá trị hơn khi bạn xem xét rằng một số trình duyệt di động hoặc WebTV nhất định sẽ muốn WML hoặc các bộ đánh dấu hoàn toàn khác nhau.

1

cũng ... tôi sẽ không sử dụng điều khiển html nếu bạn không cần thực hiện bất kỳ điều gì trên máy chủ đó trên máy chủ. tôi sẽ làm

<input id='btnCancel' type='button' value='Cancel' /> 

vây.

3

Theo kinh nghiệm của tôi, có rất ít sự khác biệt. Như Darren đã nói, nếu bạn không cần chức năng phía máy chủ, các điều khiển HTML có thể có tác động thấp hơn.

Và đừng quên, bạn có thể tắt chức năng phía máy chủ trên hầu hết mọi điều khiển HTML chỉ bằng cách thêm chỉ thị runat = "server" và ID vào nó.

0

Bằng cách thêm runat = "server", bạn có thể truy cập vào bất kỳ điều khiển HTML nào ở phía máy chủ .. và tôi tin rằng điều khiển HTML ít trọng lượng hơn so với điều khiển máy chủ ASP.NET ..

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