Foros del Web » Programación para mayores de 30 ;) » .NET »

Resultado según el valor en DATAGRID

Estas en el tema de Resultado según el valor en DATAGRID en el foro de .NET en Foros del Web. Hola Foreros! ¿Tan dificil es hacer que en un DataGrid según el valor que tenga en una columna ponga un resultado u otro? Me explico: ...
  #1 (permalink)  
Antiguo 02/09/2004, 00:05
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Resultado según el valor en DATAGRID

Hola Foreros!

¿Tan dificil es hacer que en un DataGrid según el valor que tenga en una columna ponga un resultado u otro? Me explico: en una de las columnas tengo una serie de resultados (0,3,7,2,0,2,8,9.... etc). Lo que quiero es que si el resultado es 0 me ponga "ADM-G" y si no es 0 me ponga "ADM-A".

He pasado la columna a Columna Plantilla para ver si en el HTML puedo hacer algo, pero no se qué estoy haciendo mal. ¿No se podría hacer algo así?:

Código:
<%
	if (DataBinder.Eval(Container.DataItem, "priv_usuario")=="0")
		response.write("ADM-G");
	else
		response.write("ADM-A");
%>
Saludos
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #2 (permalink)  
Antiguo 02/09/2004, 06:00
 
Fecha de Ingreso: junio-2001
Ubicación: Cordoba, Argentina
Mensajes: 190
Antigüedad: 22 años, 10 meses
Puntos: 0
creo que se pueden usar solo expresiones en el enlaces de datos y no sentencias de control de flujo, podrias usar "iif" que genera una epresion

iif (DataBinder.Eval(Container.DataItem, "priv_usuario")=="0" ,"ADM-G","ADM-A")

sino siempre existe la posibilidad de usar el evento itemdatabound en donde se puede poner cualquier tipo de codigo...
Saludos
__________________
Martin
  #3 (permalink)  
Antiguo 02/09/2004, 09:07
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Otra forma es que tengas una funcion que se encarge de eso..

por ejemplo.. si tienes en tu datagrid un templatecolumn con un textbox de ésta forma:

Cita:
<ItemTemplate>
<asp:TextBox Runat=server ID=txtContent Text='<%# CheckValue(Container.DataItem("Campo") %>'></asp:TextBox>
</ItemTemplate>
La funcion CheckValue se va a encargar de devolver el valor deseado..

Por lo que en tu codebehind tendrías algo como ésto:

Cita:
Protected Function CheckValue(ByVal sContent As String) As String

If sContent = "0" Then
Return "ADM-G"
Else
Return "ADM-A"
End If

End Function
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 03/09/2004, 01:08
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Por Fin!!!!

CONSEGUIDO!!!!

La forma que "recetaba" Martín tenía buena pinta pero no me funcionó. No se si sería que estoy usando C# y su código iba dirigido más bien a VB... pero el caso es que no me funcionó.

Pero de la forma que ha suministrado el maestro RootK ha sido la definitiva despues de unos cuantos cambios (al usar C#).

En el HTML:
Código:
Text='<%# CheckValue(DataBinder.Eval(Container, "DataItem.priv_usuario")) %>'
En el CodeBehind:
Código:
protected string CheckValue (object sContent)
		{
			string sCadena=Convert.ToString(sContent);
			if (sCadena=="0")
				return "ADM-G";
			else
				return "ADM-A";
		}
De paso, TODO esto me soluciona multitud de dudas. Os lo agradezco MUCHIIIISIMO!!!

Chapó

Saludos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
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




La zona horaria es GMT -6. Ahora son las 17:55.