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

Dar Formato a una Columna de un datagrid

Estas en el tema de Dar Formato a una Columna de un datagrid en el foro de .NET en Foros del Web. Tengo un problema y esque tengo un campo Money si guardo 1,20€ me pone 1,2000 y se queda muy feo. E probado al guardar poner ...
  #1 (permalink)  
Antiguo 18/06/2008, 12:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 85
Antigüedad: 16 años
Puntos: 0
Dar Formato a una Columna de un datagrid

Tengo un problema y esque tengo un campo Money si guardo 1,20€ me pone 1,2000 y se queda muy feo. E probado al guardar poner ofila("ColumnaCosto")=Format(me.txtPrecio.text,"## #,###.00") pero me da error si no es así serí dandole formato a la columna Costo desde codigo como lo Haría, gracias de antemano
  #2 (permalink)  
Antiguo 19/06/2008, 07:44
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Dar Formato a una Columna de un datagrid

Lo puedes hacer con Expresiones regulares.

using System;


namespace EducaLibWeb
{
public class ValidacionesRegulares
{
public ValidacionesRegulares()
{
}



public static string letra_nif(UInt32 dni)
{
string s_letra = "TRWAGMYFPDXBNJZSQVHLCKE";
dni = dni % 23;
s_letra = s_letra[Convert.ToInt16(dni)].ToString();
return s_letra;
}

/// <summary>
/// Valida si una hora es correcta con el formato (HH:MM)
/// </summary>
/// <returns></returns>
public static bool ValidaHora(string hora)
{
string formato = @"^((0)?[1-9]|1\d|2[0-3]):([0-5]\d)$";

System.Text.RegularExpressions.Regex Exp = new System.Text.RegularExpressions.Regex(formato);

if(!Exp.IsMatch(hora))
return false;
return true;
}
/// <summary>
/// Valida si un Movil es correcto
/// </summary>
/// <returns></returns>
public static bool ValidaMovil(string Movil)
{
string formato = "^(9|6){1}[0-9]{8}";//"/9|6\d{8}"; //^\\d{9}$";//"[0-9]{9}"; ^9|6\\d{8}"

System.Text.RegularExpressions.Regex Exp = new System.Text.RegularExpressions.Regex(formato);

if(!Exp.IsMatch(Movil))
return false;
return true;
}
/// <summary>
/// Valida si un Movil es correcto
/// </summary>
/// <returns></returns>
public static bool ValidarMoney (string Money)
{
string formato = "^(-)?\d+(\.\d\d)?$";
System.Text.RegularExpressions.Regex Exp = new System.Text.RegularExpressions.Regex(formato);
if (!Exp.IsMatch(Money))
return False;
return true;
}

/// <summary>
/// Valida si un email es correcto
/// </summary>
/// <returns></returns>
public static bool ValidaEmail(string Email)
{
string formato = "^([\\w-]+\\.)*?[\\w-]+@[\\w-]+\\.([\\w-]+\\.)*?[\\w]+$";

System.Text.RegularExpressions.Regex Exp = new System.Text.RegularExpressions.Regex(formato);

if(!Exp.IsMatch(Email))
return false;
return true;
}


Luego en el DataGrid

//Obtiene la fila editada en el DataGrid
DataRow dr = dataGridContactos.DataSet.Tables[0].Rows[Convert.ToInt32(e.CommandArgument)];
//valida Email
if(dr[9].ToString() != string.Empty && !ValidacionesRegulares.ValidaEmail(dr[9].ToString()))
{
Validador.InsertarMensaje("El email no es valido");
error1=true;
}

//valida movil
if(dr[10].ToString() != string.Empty && !ValidacionesRegulares.ValidaMovil(dr[10].ToString()))
{
Validador.InsertarMensaje("El Movil no es valido");
error2=true;
}



De todas maneras te dejo un enlace de un articulo sobre las Expresiones Regulares
http://www.microsoft.com/spanish/msdn/articulos/archivo/201205/voices/regex.mspx
  #3 (permalink)  
Antiguo 20/06/2008, 09:15
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
Respuesta: Dar Formato a una Columna de un datagrid

podrías poner el code que estás utilizando ?? lo haces mediante template columns o como ??

No importa que el campo en la BD lo guarde sin formato (es normal) ya que por code uno le da el formato, pasanos tu code para adaptarlo a lo que necesitas

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

Exentrit - Soluciones SharePoint & Net
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 20:54.