Foros del Web » Programando para Internet » ASPX (.net) »

Un IIF en una página C#

Estas en el tema de Un IIF en una página C# en el foro de ASPX (.net) en Foros del Web. Muy buenas. En el código fuente de una página ASPX, dentro de un datagrid, tengo una columna de plantilla donde la visibilidad de una imagen ...
  #1 (permalink)  
Antiguo 12/07/2006, 06:32
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Un IIF en una página C#

Muy buenas. En el código fuente de una página ASPX, dentro de un datagrid, tengo una columna de plantilla donde la visibilidad de una imagen depende de una valor de la base de datos.

El CodeBehind original era en VB (funcionaba bien) aunque ahora estoy haciendo una versión para C#.
Código PHP:
<ItemTemplate>
    <
asp:Image ImageUrl="../Imagen/incidencia.gif" BorderWidth="0" Runat="server" Visible='<%# (DataBinder.Eval(Container.DataItem, "Estado")=="I") ? (bool) "True": (bool) "False" %>' ID="Image1"></asp:Image>
</
ItemTemplate
Lo que devuelve Mensaje de error del compilador: CS0030: No se puede convertir el tipo 'string' a 'bool'
Antes (con VB) era así:
Código PHP:
<ItemTemplate>
    <
asp:Image ImageUrl="~/Imagenes/incidencia.gif" BorderWidth="0" Runat="server" Visible='<%# IIF(DataBinder.Eval(Container.DataItem, "Estado") = "I","True","False") %>' ID="Image1"></asp:Image>
</
ItemTemplate
La verdad es que C# me trae por la calle de la amargura.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 12/07/2006, 09:08
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Hay algo identico al IIF en C#:


string respuesta = (sere_nulo = null) ? "soy_nulo" : "no_soy_nulo";



slds.
  #3 (permalink)  
Antiguo 12/07/2006, 14:42
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Como quieres que no te salga ningún error si estás haciendo esto...
Código:
(bool) "True": (bool) "False" 
Lo _correcto_ debería ser:
Código:
<asp:Image ImageUrl="../Imagen/incidencia.gif" BorderWidth="0" Runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "Estado")=="I" %>' ID="Image1"></asp:Image>
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 13/07/2006, 00:36
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Gracias a los dos por la respuesta.

Lo primero es que el campo estado puede ser "I" o tener otro valor, sólo debería mostrarse la imagen cuando el estado es "I". mabarcau, lo que me sugieres fue lo primero que probé, exactamente:
Código PHP:
string visible = (DataBinder.Eval(Container.DataItem"Estado")=="I") ? "True""False" 
pero no resultó.
Finalmente xknown, con lo que me indicas, en el caso de que el campo tuviera el valor "I" quedaría algo así:
Código:
<img src="../...gif" visible='I'>
y si no
Código:
<img src="../...gif" visible=''>
De todas formas ayer a última hora lo conseguí. No lo tengo delante pero si no recuerdo mal fue así:
Código:
System.Convert.ToBoolean((DataBinder.Eval(Container.DataItem, "Estado")=="I") ? "True": "False")
Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #5 (permalink)  
Antiguo 18/12/2009, 08:20
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Un IIF en una página C#

hola, buscando por el goole me he encontrado con este hilo, y tengo un problemilla similar (no os confundáis, soy muy novato programando en #c, ahora os daréis cuenta.)

Estoy con el visual studio 2005, y estoy intentando meter un "rango" de valores que pueden tomar los tres lados de un triángulo. La única condición es que la suma de dos de ellos sea meyor que el tercero y que éste sea mayor que la diferencia de los otros.

Y el problema viene cuando no sé cómo hacer con un operador "if" que se cumplan estas condiciones, ya que los valores los tomo de un TextBox en forma de double, pero los double no se pueden evaluar; y no sé cómo pasar de .Text a bool, que creo que es el formato que necesitan mis datos para ser evaluados no???

Si alguien me echa una mano me haría un gran favor. Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 04:09.