Controles de validacion creados de forma dinámica

Miriam
01 de Abril del 2004
Tengo un datagrid que cargo de una base de datos, un campo de esa tabla es editable y debe incluir la cantidad pedida que no debe se mayor al stock. Puedo para cada línea de esa tabla crearme dinamicamente un control de validación para controlar la cantidad que pide....
Ejmeplo de la Tabla:
Stcok Cantidad Pedida
1000 "Indicar cantidad"

la cantidad que introduzca en el campo de texto no puede ser mayor de 1000.

-kaz-
01 de Abril del 2004
En el evento currentcellchanged podrias controlarlo, al entrar a la celda deverias guardar k celda es i al salir si es la que te interesa hacer la validacion

Miriam
01 de Abril del 2004
El campo que quiero validar es una caja de texto de una Template de un DataGrid, luego el evento que me has indicado me parece que no me vale, no estoy segura...por lo menos no lo encuentro

Elph
01 de Abril del 2004
Bueno, eso sera pq estas haciendo webforms i te han contestado para winforms, no?
En webforms deberias usar los eventos OnItemDataBound o onItemCreated. Aunq quizas seria mas util q tengas siempre en validador en la celda i lo actives/desactives dinamicamente

Miriam
01 de Abril del 2004
ELPH puedes indicarme mejor esta opción, me parece que es lo que yo quiero. Puedes explicarmelo un poco mejor, por favor....

-kaz-
01 de Abril del 2004
Si, lo siento mi respuesta era para winforms, ademas ahora veo que es bastante chapucilla, aunke funcionaria, de webforms no tengo ni idea de nada

Elph
01 de Abril del 2004
en el editItemTemplate anyades un reangeValidator i lo pones en enabled =false
en las propiedades del grid anyades OnItemDataBound="Personalizar"
i en el codigo algo parecido a

public void Personalizar(object sender,DataGridItemEventArgs objArgs)
{
if(objArgs.Item.ItemType==ListItemType.EditItem)
{
//recuperas el textBox
TextBox t=(TextBox)objArgs.Item.Cells[indiceColumnaAValidar].Controls[indice del textBox];
//para encontrar el indice del textbox, yo suelo depurar i mirar la coleccion controls
RangeValidator v=(RangeValidator)objArgs.Item.Cells[indiceColumnaAValidar].Controls[indice del validator];
//Cambias las propiedades del Validador
v.ControlToValidate=t.ClientId;//Aqui tengo la duda de si es ClientID o ID a secas.
v.enabled=true;
}
}

Suerte