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