Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/12/2005, 07:02
Avatar de lalogrosz
lalogrosz
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años, 11 meses
Puntos: 6
Exclamación Funcionamiento del DataView

Estoy validando que no ingrese un registro con la misma ubicacion repetida, por lo que le puse un customValidator...muestro el metodo

Código:
private void ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
        
        //Creo una nueva vista de la tabla
        DataView dvNuevo = new DataView(listadoCategorias1.categoria);
 
        //Si se modifica alguno, el item tiene contenido.
        //Lo borro de la vista para que no lo tome en cuenta para validarlo
        if(HiddenValue.Value != "")
        {
              int item = int.Parse(HiddenValue.Value);  
              dvNuevo.Delete(item);
        }
 
        //Busco si hay alguna ubicacion igual que la que ingrese
        dvNuevo.RowFilter = "ubicacion = '"+ TxtUbic.Text+"'";
 
        //Si hay alguna muestro el mensaje
        if(dvNuevo.Count > 0)
        {
                args.IsValid = false;
        }
        else
        {
                args.IsValid = true;
        }
 
}

Lo que estoy haciendo es crear una nueva vista de la tabla, y pregunto que si es una modificacion, saco al item que estoy editando de la vista para que no lo tome en cuenta, por si deja la misma ubicacion, ya que valido que no exista ninguno. El tema es que funciona la validacion, pero el metodo .Delete(item), me lo borra directamente de la tabla y me lo saca de otro objeto DataView que tengo fuera de este metodo y obviamente me tira una excepcion ya que quiero modificar el item que borre.
Como hago para filtrar por un item (no id sino el item seleccionado) sin perderlo en todas las vistas.

Funciona realmente asi? Borras en alguna vista y se refleja en todas?

Muchas Gracias
__________________
"Vivir....solo cuesta Vida"