Tengo un control de repetidor y una caja de texto en ese repetidor. Quiero un validador de campo requerida en el cuadro de texto ho puedo hacer estoValidador de campo requerido en el repetidor
Respuesta
<asp:Repeater id="myRep" OnItemDataBound="rep_ItemDataBound" runat="server">
<ItemTemplate>
<asp:TextBox id="tx" runat="server" />
<asp:RequiredFieldValidator id="myVal" ControlToValidate="tx" ErrorMessage="Required" runat="server" />
</ItemTemplate>
</asp:Repeater>
ACTUALIZACIÓN
añadir esto a código subyacente (también modificar el marcado de un poco de suscribirse a un evento, véase más arriba) :
protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RequiredFieldValidator val = (RequiredFieldValidator)e.Item.FindControl("myVal");
TextBox tb = (TextBox)e.Item.FindControl("tx");
val.ControlToValidate = tb.ID;
}
Prueba este
<asp:Repeater ID="rptSample" runat="server">
<ItemTemplate>
Name:<br />
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvName" ControlToValidate="txtName" runat="server" Display="Static" ErrorMessage="Name field cannot be left blank"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:Repeater>
<br />
<asp:Button ID="btnSubmit" Text="Submit" runat="server" />
esto tampoco funciona – sumit
¿Puede explicarme cómo implementar esta solución en su lado? Está funcionando bien en mi lado (PROBADO).Si hace clic en el botón de enviar, muestra el mensaje de error junto con el control del cuadro de texto. Puede escribir su código en cuestión. – Sukhjeevan
protected void myRep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((RequiredFieldValidator)e.Item.FindControl("myVal")).ValidationGroup = ((TextBox)e.Item.FindControl("tx")).UniqueID;
}
}
Si desea que todos los cuadros de texto en un repetidor para ser validado por un solo clic de botón entonces eso es tan simple como este
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<asp:TextBox ID="txt" runat="server">
</asp:TextBox>
<asp:RequiredFieldValidator ID="rqf" ControlToValidate="txt"
ErrorMessage="*" ValidationGroup = "TestValidationGroup" runat = "server">
</asp:RequiredFieldValidator>
</ItemTemplate>
</asp:Repeater>
<asp:Button ID = "btnSubmit" runat = "server" ValidationGroup = "TestValidationGroup" />
No hay necesidad de comprobar si hay cualquier evento para databound o cualquier cosa.
protected void Repeater_OnItemDataBound(object sender, RepeaterItemEventArgs e) {
tblData tbldata = e.Item.DataItem as tblData;
RequiredFieldValidator val = (RequiredFieldValidator)e.Item.FindControl("rfv");
if (tbldata.FieldName.ToUpper().Contains("NOT NULL")) {
TextBox tb = (TextBox)e.Item.FindControl("txtDATFieldName");
val.ControlToValidate = tb.ID;
}
else {
val.Enabled = false; // disable when you dont need a validator
}
}
Tal vez usted quiere tener una validación por fila ... Configurar el grupo de validación a un grupo por cada fila como esta
ValidationGroup='<%# "gropname" + Eval("Id") %>'
hacer esto en el validador, cuadro de texto y el botón
HTH G.
Obtuve una excepción de clave duplicada en RegisterExpandoAttribute tratando de hacer esto. que estaba usando un control de usuario dentro de un repetidor, cuando "OnDataBinding" en lugar de "ItemDataBinding" Esto funcionó para mí:
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.DataBinding" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
protected override void OnDataBinding(EventArgs e)
{
base.OnDataBinding(e);
foreach (Control ct in this.Controls)
{
BaseValidator bv = ct as BaseValidator;
if (null == bv)
{
continue;
}
bv.ControlToValidate = this.FindControl(bv.ControlToValidate).ID;
bv.ValidationGroup = this.ValidationGroup;
}
}
Y sí, no creo que tenga sentido, ya sea
- 1. Validación de número en el validador de campo requerido
- 2. Validación de la lista desplegable en Asp.net usando el validador de campo requerido
- 3. ¿Cómo puedo desactivar el comportamiento de "pérdida de foco" del validador de campo requerido de ASP.NET
- 4. asp.net validador de campo requerido deshabilita el botón de ingreso formulario de envío
- 5. asp.net validador de campo requerido para al menos un cuadro de texto contiene texto
- 6. invocar validador de campo a través de javascript
- 7. Validador de Hibernate: aplicar condicionalmente el validador
- 8. campo de formulario de Django requerido condicionalmente
- 9. Validador de campo personalizado Django vs.
- 10. jQuery validador plug-in: validar campo opcional
- 11. Paginación en el repetidor
- 12. ¿Puede el validador personalizado hacer que un campo sea opcional?
- 13. Validador de campo obligatorio que no se activa
- 14. Repetidor anidado
- 15. Modelo de Django eliminar el atributo "requerido" basado en otra opción de campo
- 16. #Eval if instrucción en el repetidor
- 17. Orientación horizontal en el control del repetidor
- 18. Deshabilitar el enfoque automático de entrada con el validador jQuery
- 19. El validador springmvc jsr303 coexiste con el validador WebDataBinder de resorte en una acción
- 20. django confirmar validador de contraseña
- 21. Opción en blanco en ChoiceField requerido
- 22. HTML5: cómo usar el atributo "requerido" con un campo de entrada "radio"
- 23. Falta el parámetro requerido en clojure.java.jdbc
- 24. validador WSDL
- 25. Referencia a objeto requerido para el campo no estático, método o propiedad
- 26. ¿Cómo crear un validador personalizado en smartGWT?
- 27. Email Validador de SMTP
- 28. Cómo recuperar el validador de un formulario
- 29. asp.net: ¿Cómo encontrar el repetidor div en el back-end?
- 30. JSF2 Buscapersonas/buscapersonas para el repetidor
esto es no trabaja amigo – sumit
¿Podría elaborar? ¿Qué es exactamente lo que no funciona? Funciona bien para mí (recién probado). ¿No recibe un mensaje de error cuando intenta enviar y vaciar el campo? – volpav
sí está trabajando ... – ogun