2009-04-04 19 views
18

Đây chỉ là một câu hỏi đơn giản: làm cách nào để loại trừ một đoạn html trên biểu mẫu web aspx khỏi máy chủ trả về, dựa trên đánh giá phía máy chủ?Điều kiện không bao gồm một khối html trong ASP.NET WebForms

Tôi không nói về kiểm soát cụ thể vì chúng có xu hướng có thông số Hiển thị, nhưng thay vào đó chỉ là một số html thô.

Trả lời

8
<div id="divYourDiv" runat="server"> 
    your stuff goes here... 
</div> 

//Server side code... 
public void ShowYourDiv(bool visible) 
{ 
    this.divYourDiv.Visible = visible; 
} 
+0

Tôi dường như không thể truy cập divYourDiv từ codebehind. Có điều gì tôi cần phải làm đầu tiên để làm cho điều này có thể truy cập? – devios1

+1

đảm bảo bạn đặt runat = "server" – bytebender

0

Thông qua nó/đặt trong div hoặc bảng điều khiển ẩn (nếu sử dụng div, đánh dấu runat = máy chủ, cả hai hiển thị dưới dạng div). Sau đó, làm cho div/panel hiển thị hoặc giữ nó ẩn tùy thuộc vào đánh giá của bạn.

0

Bạn có thể bọc html của mình trong bảng điều khiển asp hay không và đặt thuộc tính hiển thị của bảng điều khiển ở phía máy chủ.

Nếu không, Html là phía máy khách, bạn cần sử dụng javascript để thao tác. Bạn có thể hiển thị một số javascript bên trong mã phía máy chủ của bạn, nhưng thông thường đó không phải là một ý tưởng hay.

8

Đặt mã kiểm soát PlaceHolder xung quanh mã. Nó không hiển thị bất kỳ mã nào cho chính nó (ví dụ như ví dụ Panel), vì vậy nó không can thiệp vào mã html khi nó hiển thị.

Nếu bạn đặt thuộc tính Visible của PlaceHolder thành sai, mã bên trong PlaceHolder sẽ không được hiển thị cho trang.

48

Một số người phản đối phương pháp sau nhưng phương pháp mà không ai trả lời và tôi cảm thấy rằng nó sẽ được hiển thị dưới dạng tùy chọn. Nó có thể tiện dụng khi sử dụng đúng cách.

<% if (ShowLabel) {%> 
<label>This will not be shown if the ShowLabel property evaluates false</label> 
<%}%> 

Để thực hiện công việc này, bạn sẽ có tài sản công khai hoặc được bảo vệ trên trang của bạn được gọi là ShowLabel trả về boolean.

+0

Tôi thực sự thích kiểu như vậy. Tôi đoán một số ppl không thích để trộn mã và đánh dấu, nhưng tôi là một coder ở tim vì vậy điều này có ý nghĩa hơn với tôi. :) – devios1

+1

Trong một số trường hợp, đây thậm chí là giải pháp duy nhất có thể. Ví dụ: nếu bạn muốn ẩn các thẻ