none
sobre validationgroup RRS feed

  • Pregunta

  • Hola:

    Tengo un gridview

            <asp:GridView ID="gvpedidos" SortedAscendingHeaderStyle-BackColor="Blue" SortedDescendingHeaderStyle-BackColor="BlueViolet" HeaderStyle-CssClass="titulo" DataSourceID="objdspedidos" EmptyDataRowStyle-CssClass="centro" EmptyDataRowStyle-ForeColor="red" EmptyDataText="No hay registros" AllowPaging="true" AllowSorting="true" Width="100%" AutoGenerateColumns="false" DataKeyNames="id0" runat="server">
                <PagerTemplate>
                    <span class="centrado"><asp:Button Text="Principio" CommandName="Page" CommandArgument="First" OnClientClick="if(document.getElementById('ctl00_cphcontenido_gvpedidos_ctl01_ddlpaginas').options[document.getElementById('ctl00_cphcontenido_gvpedidos_ctl01_ddlpaginas').selectedIndex].text==1)  {alert('Ya se está en el principio'); return false}" runat="server" />
                    <asp:LinkButton CommandName="Page" CommandArgument="Prev" runat="server"><asp:Image ID="imgpaginaanterior" Tooltip="Página anterior" AlternateText="Página anterior" visible="false" BorderWidth="0" ImageUrl="../Imagenes/flecha izquierda.gif" Width="16" Height="12" runat="server" /></asp:LinkButton>
                     <asp:DropDownList ID="ddlpaginas" AutoPostBack="true" OnSelectedIndexChanged="seleccionar_pagina" runat="server" />/
                    <asp:Label ID="lblpaginas" runat="server" />
                    <asp:LinkButton CommandName="Page" CommandArgument="Next" runat="server"><asp:Image ID="imgpaginasiguiente" Tooltip="Página siguiente" AlternateText="Página siguiente" visible="false" BorderWidth="0" ImageUrl="../Imagenes/flecha derecha.gif" Width="16" Height="12" runat="server" /></asp:LinkButton>
                    <asp:Button Text="Fin" CommandName="Page" CommandArgument="Last" OnClientClick="if(document.getElementById('ctl00_cphcontenido_gvpedidos_ctl01_ddlpaginas').options[document.getElementById('ctl00_cphcontenido_gvpedidos_ctl01_ddlpaginas').selectedIndex].text==document.getElementById('ctl00_cphcontenido_gvpedidos_ctl01_lblpaginas').innerHTML) {alert('Ya se está en el fin'); return false}" runat="server" /></span>
                </PagerTemplate>
                <PagerSettings Position="TopAndBottom" />
                <Columns>
                    <asp:CommandField HeaderText="Edición" ValidationGroup="facturas" ShowEditButton="true" EditText="Editar" ShowCancelButton="true" CancelText="Cancelar" />
                    <asp:BoundField HeaderText="Cuenta" ItemStyle-CssClass="derecha"  ReadOnly="true" DataField="c10" SortExpression="c10" />
                    <asp:BoundField HeaderText="Nombre cuenta" DataField="nombre_cuenta"  ReadOnly="true" SortExpression="nombre_cuenta" />
                    <asp:TemplateField HeaderText="Concepto" SortExpression="concepto">
                        <ItemTemplate>
                            <asp:label text='<%#poner_enlace_concepto_noobras(Eval("clave"), "pedido", Eval("concepto"), Eval("fecha"))%>' runat="server" />
                            <asp:label text='<%# Eval("concepto") & nuevo(Eval("fecha"))%>' visible="false" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField HeaderText="Fecha" DataField="fecha" ItemStyle-CssClass="centro" ReadOnly="true" SortExpression="fecha" />
                    <asp:BoundField HeaderText="Nº factura" DataField="nfactura"  ReadOnly="true" SortExpression="nfactura" />
                    <asp:TemplateField HeaderText="Nombre" SortExpression="nombre">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txtnombre" Width="30" MaxLength="25" Text='<%# Bind("nombre") %>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtnombre" ErrorMessage="Nombre obligatorio" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtnombre" ErrorMessage="Nombre inválido" Display="None" ValidationExpression="[^'<>]*" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("nombre")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Apellidos" SortExpression="apellidos">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txtapellidos" Width="30" MaxLength="50" Text='<%# Bind("apellidos") %>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtapellidos" ErrorMessage="Apellidos obligatorios" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtapellidos" ErrorMessage="Apellidos inválidos" Display="None" ValidationExpression="[^'<>]*" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("apellidos")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Dirección" SortExpression="direccion">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txtdireccion" Width="30" MaxLength="25" Text='<%# Bind("direccion")%>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtdireccion" ErrorMessage="Dirección obligatoria" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtdireccion" ErrorMessage="Dirección inválida" Display="None" ValidationExpression="[^'<>]*" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("direccion")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Localidad" SortExpression="localidad">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txtlocalidad" Width="30" MaxLength="50" Text='<%# Bind("localidad")%>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtlocalidad" ErrorMessage="Localidad obligatoria" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtlocalidad" ErrorMessage="Localidad inválida" Display="None" ValidationExpression="[^'<>]*" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("localidad")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Correo elec." SortExpression="correo">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txtcorreo" Width="30" MaxLength="80" Text='<%# Bind("correo")%>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtcorreo" ErrorMessage="Correo elec. obligatorio" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txtcorreo" ErrorMessage="Correo elec. inválido" Display="None" ValidationExpression="^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("correo")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Región" SortExpression="tregion">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> 
                            <asp:DropDownList ID="ddlpaises_editar"  DataSourceID="sqldspaises_editar" AutoPostBack="true" DataTextField="pais" DataValueField="p0" OnSelectedIndexChanged="seleccionar_paises" runat="server" />
                            <asp:DropDownList ID="ddlregiones_editar" DataSourceID="sqldsregiones_editar"  DataTextField="region" DataValueField="r0" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("tregion")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Teléfono" SortExpression="telefono">
                        <EditItemTemplate>
                            <b><asp:label ForeColor="Red" Text="*" runat="server" /></b> <asp:TextBox ID="txttelefono" Width="30" MaxLength="15" Text='<%# Bind("telefono")%>' runat="server" />
                            <asp:RequiredFieldValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txttelefono" ErrorMessage="Teléfono obligatorio" Display="None" runat="server" />
                            <asp:RegularExpressionValidator ForeColor="red" ValidationGroup="pedidos" ControlToValidate="txttelefono" ErrorMessage="Teléfono inválido" Display="None" ValidationExpression="[^'<>]*" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:label text='<%# Eval("telefono")%>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <asp:ValidationSummary ValidationGroup="pedidos" ShowMessageBox="true" ShowSummary="false" runat="server" />

    El caso es que no realiza ninguna validación. No sé por qué.

    Page.IsValid es true en el rowupdating del gridview dejando un textbox en blanco

    ¿Se os ocurre por qué?

    Gracias de antemano





    • Editado volar.2014 miércoles, 26 de agosto de 2015 18:45
    miércoles, 26 de agosto de 2015 18:23

Respuestas