2010-01-03 46 views
6

Tôi có một điều khiển văn bản ASP.NET "FROMNgày" có tài sản nhìn thấy được thiết lập để sai, nhưng tôi muốn có một phía khách hàng javascript để có thể chuyển đổi tài sản tầm nhìn sử dụng thuộc tính CSSKiểm soát ASP.NET với visible = false không thể được sử dụng trong javascript?

element1.style.display = "none"; // hides the element 
element1.style.display = ""; // shows the element 

nhưng khi tôi cố gắng để có được hộp, tôi nhận được null trên

var element1 = document.getElementById("FromDate"); 

Khi tôi cố gắng cùng mã với visble = true là mặc định trên "FROMNgày" kiểm soát ASP.NET, nó hoạt động (mặc dù đó không phải là hành vi của tôi cần)

Bất kỳ ý tưởng nào?

Trả lời

13

Nếu bạn muốn ẩn điều khiển này, bạn có thể thử CSS như thế này:

<asp:somecontrol id="FromDate" style="display:none" /> 

Tôi nghĩ lẩn trốn sự kiểm soát với CSS là dễ hiểu hơn.

+2

từ mã phía sau: somecontrol.Style ("display") = "none" –

17

Khi bạn đặt Hiển thị = false thành điều khiển, nó sẽ không được hiển thị. Điều đó có nghĩa là không có đại diện HTML của điều khiển đó được gửi đến trang. Chỉ đặt kiểu.

Bạn có thể thiết lập các phong cách như display: none từ mã phía máy chủ như thế này:

FromDate.Style.Add(HtmlTextWriterStyle.Display, "none") 
+0

Sự kiện có thể được gọi khi hiển thị là sai không? Khi được hỏi về vấn đề an ninh. –

+0

@Ufuk: Loại sự kiện nào? Không thể gọi các sự kiện JavaScript vì không có gì trên máy khách. Sự kiện phía máy chủ vẫn có thể được gọi (Mặc dù điều khiển có thể đã được viết sao cho các sự kiện sẽ không được nâng lên nếu thuộc tính Hiển thị của nó được đặt thành false). –

+0

Sự kiện phía máy chủ như nhấp vào nút. Nếu ai đó messes với postback, họ có thể kích hoạt những sự kiện? –

2

Thay vì đặt Visible = false, thiết style.display của nó không ai sánh kịp, như vậy nguyên tố này vẫn còn đó cho JavaScript để thao tác.

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