2011-07-28 6 views
6

Xin chào, tôi muốn sử dụng if condition trong tệp .ascx. Như được hiển thị bên dưới:Sử dụng nếu điều kiện trong tập tin ascx

<%= if (value.equals("xyz")) {} %> 

như được hiển thị ở trên, nếu tôi sử dụng như vậy. sau đó tôi nhận được lỗi của "invalid expression if".

vui lòng hướng dẫn tôi.

Trả lời

15

Thay vì <%= bạn nên sử dụng <% (không có dấu hiệu =):

<% if (value.equals("xyz")) { } %> 

<%= được sử dụng khi bạn muốn đầu ra là kết quả của sự biểu hiện trực tiếp đến HTML.

5

Điều này là do biểu thức không đánh giá chuỗi, có thể được bao gồm trong đánh dấu, vì vậy không thể sử dụng ký hiệu <%=. Bạn có thể làm điều đó với các nhà điều hành có điều kiện:

<%= condition ? "value if true" : "value if false" %> 

Hoặc bạn có thể chèn một khối mã sử dụng ký hiệu này:

<% if (value.equals("xyz")) { } %> 

Chỉ cần lưu ý rằng sau đó bạn cần phải Response.Write bất kỳ sản lượng mà bạn muốn trong xoăn niềng răng. Đây không phải là thực hành tốt nhất - cố gắng tránh logic trong đánh dấu của bạn.

0

Không thể sử dụng câu trả lời ở trên cho các thuộc tính boolean như "Hiển thị". Thay vào đó hãy đặt mã này vào hàm BindData().

if (condition) { 
    this.pnlMyPanel.Visible = true; 
} else { 
    this.pnlMyPanel.Visible = false; 
} 

Nếu bạn không sử dụng tipically BindData(), đặt nó trong Page_Load dưới

if (!this.IsPostBack) {} 

khối.