2011-07-28 18 views
6

Hola, quiero usar if condition en el archivo .ascx. Como se muestra a continuación:Usar si la condición en el archivo ascx

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

como se muestra arriba, si yo uso así. entonces recibo el error "invalid expression if".

por favor guíame.

Respuesta

15

En lugar de <%= se debe utilizar <% (sin el signo =):

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

<%= se utiliza cuando se desea que el resultado de la expresión directamente en el código HTML.

5

Esto se debe a que la expresión no evalúa a una cadena, que se puede incluir en el marcado, por lo que la notación <%= no se puede utilizar. Puede hacerlo con el operador condicional:

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

O puede insertar un bloque de código usando esta notación:

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

acaba de ser conscientes de que este caso es necesario Response.Write cualquier salida que desee dentro del rizado tirantes. Esta no es la mejor práctica: intente evitar la lógica en su marcado.

0

Las respuestas anteriores no se pueden utilizar para atributos booleanos como "Visible". En su lugar, ponga este código en la función BindData().

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

Si no se utiliza típicamente BindData(), lo puso en Load bajo

if (!this.IsPostBack) {} 

bloque.

Cuestiones relacionadas