This is a migrated thread and some comments may be shown as answers.

[Solved] CompareValidator stops validating in hierarchy grid

3 Answers 247 Views
Grid
This is a migrated thread and some comments may be shown as answers.
psiegers45
Top achievements
Rank 1
psiegers45 asked on 14 Jan 2010, 12:36 AM
Hi, I'm having problems getting my CompareValidator working inside my grid.
 
My grid uses a simple two level hierarchy. First level is a datetime, second level is a detail table with zero, one or more items.

In the detailtable there is a TABLE with a couple of TDs. These TDs are programmatically set to visible or invisible. Each TD has some controls.

One TD has a textbox and an input field (set to invisible), and also a Repeater that contains zero, one or more CompareValidators. Each CompareValidator validates against the invisible input field (which contains a copy of the parental user textbox).

I inject each CompareValidator in the Repeater ItemDataBound event handler.

This validation works until the value to compare results to false, and after that changing the value to a correct one does not cause the error message to disappear. Consequently, the form does not submit and the values in the grid are not updated nor validated.

I read that I should be using RadGrid's ItemCreated event handler to add CompareValidators but I cannot do that since it depends on each item in detail table if it has or not some special value. Also, I should be able to validate against more than one rule (indicated by the repeater) so there's the use of the repeater.

See code below. If anyone can shed light on the issue please do so!

        protected void repeaterPoliticas_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)  
        {  
            RepeaterItem i = e.Item;  
 
            if (i.ItemType == ListItemType.Item ||  
                i.ItemType == ListItemType.AlternatingItem)  
            {  
                CompareValidator cv = (CompareValidator)i.FindControl("cvMontoPolitica");  
 
                if (cv != null)  
                {  
                    DataRow data = (DataRow)i.DataItem;  
                    HtmlInputText hdnAux = (HtmlInputText)i.FindControl("hdnAux");  
                    hdnAux.Value = ((TextBox)hdnAux.Parent.Parent.Parent.FindControl("txtMonto")).Text;  
                    cv.ControlToValidate = hdnAux.ID;  
                    cv.ValueToCompare = Convert.ToString(data["monto"]);  
                    cv.Operator = (ValidationCompareOperator)Convert.ToInt32(data["operador"]);  
 
                    TextBox txtMonto = ((TextBox)hdnAux.Parent.Parent.Parent.FindControl("txtMonto"));  
                    txtMonto.ToolTip = Convert.ToString(data["descripcion"]);  
                }  
            }  
        }  
 
 

Radgrid code is here:

    <telerik:RadGrid   
        ID="rgDiasGastos"   
        runat="server"   
        Width="99%" 
        ShowStatusBar="true" 
        AutoGenerateColumns="False"   
        PageSize="3"   
        AllowSorting="True"   
        AllowMultiRowSelection="False" 
        AllowPaging="True"   
        GridLines="None"   
        AllowAutomaticDeletes="True"   
        AllowAutomaticInserts="True" 
        AllowAutomaticUpdates="True"   
        ImagesPath="~/Images/telerik"   
        Skin="Outlook">  
        <HeaderContextMenu> 
            <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
        </HeaderContextMenu> 
        <PagerStyle Mode="NumericPages"   
            FirstPageImageUrl="~/Images/telerik\PagingFirst.gif"   
            LastPageImageUrl="~/Images/telerik\PagingLast.gif"   
            NextPageImageUrl="~/Images/telerik\PagingNext.gif"   
            PrevPageImageUrl="~/Images/telerik\PagingPrev.gif">  
        </PagerStyle> 
        <MasterTableView   
            DataKeyNames="fecha" EnableViewState="true" 
            AllowMultiColumnSorting="True" 
            Width="100%"   
            CommandItemDisplay="None" 
            EditFormSettings-EditFormType="AutoGenerated" 
            Name="Dias">  
            <CommandItemTemplate> 
                <asp:LinkButton   
                    ID="LinkButton1"   
                    runat="server"   
                    CommandName="InitInsert"   
                    Visible='<%# !rgDiasGastos.MasterTableView.IsItemInserted %>'>  
                    <img style="border:0px" alt="" src="Images/buttons/btn_agregar2.jpg" />&nbsp;fecha  
                </asp:LinkButton> 
            </CommandItemTemplate> 
            <DetailTables> 
                <telerik:GridTableView   
                    DataKeyNames="idComprobacionGastoDetalle"   
                    Width="100%" 
                    runat="server" EnableViewState="true" 
                    CommandItemDisplay="Top" 
                    EditFormSettings-EditFormType="Template" 
                    Name="Gastos">  
                    <CommandItemTemplate> 
                        <asp:LinkButton   
                            ID="LinkButton2"   
                            runat="server"   
                            CommandName="InitInsert"   
                            Visible='<%# !rgDiasGastos.MasterTableView.DetailTables[0].IsItemInserted %>'>  
                            <img style="border:0px" alt="" src="Images/buttons/btn_agregarGasto.jpg" /> 
                        </asp:LinkButton> 
                    </CommandItemTemplate> 
                    <ParentTableRelation> 
                        <telerik:GridRelationFields DetailKeyField="fechaDetalle" MasterKeyField="fecha" /> 
                    </ParentTableRelation> 
                    <CommandItemSettings AddNewRecordImageUrl="~/Images/telerik\AddRecord.gif"   
                        RefreshImageUrl="~/Images/telerik\Refresh.gif" /> 
                    <RowIndicatorColumn FilterImageUrl="~/Images/telerik\Filter.gif"   
                        SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                        SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                    </RowIndicatorColumn> 
                    <ExpandCollapseColumn Visible="True" CollapseImageUrl="~/Images/telerik\SingleMinus.gif"   
                        ExpandImageUrl="~/Images/telerik\SinglePlus.gif"   
                        FilterImageUrl="~/Images/telerik\Filter.gif"   
                        SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                        SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                    </ExpandCollapseColumn> 
                    <Columns> 
                        <telerik:GridEditCommandColumn ButtonType="ImageButton"   
                            UniqueName="EditCommandColumn2" CancelImageUrl="~/Images/telerik\Cancel.gif"   
                            EditImageUrl="~/Images/telerik\Edit.gif"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            InsertImageUrl="~/Images/telerik\Update.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif"   
                            UpdateImageUrl="~/Images/telerik\Update.gif">  
                            <HeaderStyle Width="20px" /> 
                            <ItemStyle CssClass="MyImageButton" /> 
                        </telerik:GridEditCommandColumn> 
                        <telerik:GridDateTimeColumn SortExpression="fechaDetalle" HeaderText="fechaDetalle" HeaderButtonType="TextButton" 
                            DataField="fechaDetalle" UniqueName="fechaDetalle" Visible="false" 
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridDateTimeColumn> 
                        <telerik:GridBoundColumn   
                            SortExpression="Agrupacion"   
                            DataField="Agrupacion"   
                            HeaderText="Agrupacion"   
                            HeaderButtonType="TextButton" 
                            UniqueName="Agrupacion"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridBoundColumn> 
                        <telerik:GridBoundColumn   
                            SortExpression="Concepto"   
                            DataField="Concepto"   
                            HeaderText="Concepto"   
                            HeaderButtonType="TextButton"   
                            UniqueName="Concepto"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridBoundColumn> 
                        <telerik:GridBoundColumn   
                            SortExpression="CentroCosto"   
                            DataField="CentroCosto"   
                            HeaderText="Centro Costo"   
                            HeaderButtonType="TextButton" 
                            UniqueName="CentroCosto"   
                            Visible="true"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridBoundColumn> 
                        <telerik:GridBoundColumn   
                            SortExpression="WBS"   
                            DataField="WBS"   
                            HeaderText="WBS"   
                            HeaderButtonType="TextButton" 
                            UniqueName="WBS"   
                            Visible="true"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridBoundColumn> 
                        <telerik:GridBoundColumn  
                            SortExpression="monto" 
                            DataField="monto"   
                            HeaderText="monto"   
                            HeaderButtonType="TextButton" 
                            UniqueName="monto"   
                            Visible="true"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                        </telerik:GridBoundColumn> 
                        <telerik:GridButtonColumn   
                            ConfirmText="Desea eliminar este gasto?"   
                            ButtonType="ImageButton" 
                            CommandName="Delete"   
                            Text="Eliminar gasto"   
                            UniqueName="DeleteColumn2"   
                            FilterImageUrl="~/Images/telerik\Filter.gif"   
                            SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                            SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                            <HeaderStyle Width="20px" /> 
                            <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> 
                        </telerik:GridButtonColumn> 
                    </Columns> 
                    <EditFormSettings EditFormType="Template">  
                        <EditColumn UniqueName="EditColumn"></EditColumn> 
                        <FormTemplate> 
                            <table cellspacing="0" cellpadding="0" width="100%" border="1" class="txtNormal">  
                                <tr valign="top">  
                                    <td><input id="hdnFecha" type="hidden" runat="server" name="hdnFecha" value="" /></td>  
                                    <td width="102"><b>*Agrupación</b><br /> 
                                        <asp:DropDownList ID="ddlAgrupacion" runat="server" DataSource="<%# dsAgrupacionesConceptos %>" DataMember="Agrupaciones" CssClass="txtNormal" OnSelectedIndexChanged="ddlAgrupacion_SelectedIndexChanged" DataValueField="idConceptoGastoGrupo" DataTextField="descripcionAgrupacion" AutoPostBack="True"></asp:DropDownList><br /> 
                                        <asp:requiredfieldvalidator id="rqfAgrupacion" runat="server" CssClass="txtNormal" ErrorMessage="La agrupación es requerida." ControlToValidate="ddlAgrupacion" Display="Dynamic"></asp:requiredfieldvalidator></td>  
                                    <td width="102"><b>*Concepto</b><br /> 
                                        <asp:DropDownList ID="ddlConcepto" runat="server" CssClass="txtNormal" OnSelectedIndexChanged="ddlConcepto_SelectedIndexChanged" DataValueField="idConceptoGasto" DataTextField="descripcion" AutoPostBack="true"></asp:DropDownList><br /> 
                                        <asp:RequiredFieldValidator id="rqfConceptoGasto" runat="server" CssClass="txtNormal" ErrorMessage="El concepto de gasto es requerido." ControlToValidate="ddlConcepto" Display="Dynamic"></asp:RequiredFieldValidator></td>  
                                    <td id="tdComprobantes" width="102" runat="server"><b>Comprobantes</b><br /> 
                                        <asp:TextBox ID="txtComprobantes" runat="server" Text='<%# Bind("comprobantes") %>' CssClass="txtNormal" Width="100"></asp:TextBox><br /> 
                                        <asp:regularexpressionvalidator id="revComprobantes" runat="server" CssClass="txtNormal" ErrorMessage="El campo comprobantes contiene al menos un caracter inválido  '  <  >" ControlToValidate="txtComprobantes" Display="Dynamic" ValidationExpression="[^'<>]+"></asp:regularexpressionvalidator> 
                                        <asp:requiredfieldvalidator id="rqfComprobantes" runat="server" CssClass="txtNormal" ErrorMessage="Los comprobantes son requeridos." ControlToValidate="txtComprobantes" Display="Dynamic" Enabled="false"></asp:requiredfieldvalidator></td>  
                                    <td id="tdJustificacion" width="152" runat="server"><b>Justificación</b><br /> 
                                        <asp:TextBox ID="txtJustificacion" runat="server" Text='<%# Bind("justificacion") %>' CssClass="txtNormal" Width="150"></asp:TextBox><br /> 
                                        <asp:regularexpressionvalidator id="revJustificacion" runat="server" CssClass="txtNormal" ErrorMessage="El campo justificación contiene al menos un caracter inválido  '  <  >" ControlToValidate="txtJustificacion" Display="Dynamic" ValidationExpression="[^'<>]+"></asp:regularexpressionvalidator> 
                                        <asp:RequiredFieldValidator id="rqfJustificacion" runat="server" CssClass="txtNormal" ErrorMessage="La justificación es requerida." ControlToValidate="txtJustificacion" Display="Dynamic" Enabled="false"></asp:RequiredFieldValidator></td>  
                                    <td ID="tdCentroCosto" width="102" runat="server"><strong>*Centro de costo</strong><br /> 
                                        <asp:dropdownlist ID="ddlCentroCosto" runat="server" DataSource="<%# dsCentrosCosto %>" CssClass="txtNormal" DataValueField="numeroCentroCosto" DataTextField="descripcion"></asp:dropdownlist><br /> 
                                        <asp:requiredfieldvalidator id="rqfCentroCosto" runat="server" CssClass="txtNormal" ErrorMessage="El centro de costo es requerido." ControlToValidate="ddlCentroCosto" Display="Dynamic"></asp:requiredfieldvalidator></td>  
                                    <td ID="tdWBS" width="122" runat="server"><b><%# isWBSRequerido?"*":"" %>WBS</b><br /> 
                                        <asp:TextBox ID="txtWBS" runat="server" Text='<%# Bind("WBS") %>' CssClass="txtNormal" Width="120" MaxLength="18"></asp:TextBox><br /> 
                                        <asp:regularexpressionvalidator id="revWBS" runat="server" CssClass="txtNormal" ErrorMessage="El campo WBS contiene al menos un caracter inválido  '  <  >  (ej. aaa-aaa12kkma1986a)" ControlToValidate="txtWBS" Display="Dynamic" ValidationExpression="^([a-zA-Z]{3})-([a-zA-Z]{3})([0-9]{2})([^'<>])*$"></asp:regularexpressionvalidator> 
                                        <asp:requiredfieldvalidator id="rqfWBS" runat="server" CssClass="txtNormal" ErrorMessage="El WBS es requerido." ControlToValidate="txtWBS" Display="Dynamic"></asp:requiredfieldvalidator></td>  
                                    <td id="tdPersonas" width="37" runat="server"><strong title="Número de personas">Pers.</strong><br>  
                                        <asp:TextBox ID="txtPersonas" runat="server" Text='<%# Bind("personas") %>' CssClass="txtNormal" Width="35" MaxLength="2" style="TEXT-ALIGN: right"></asp:TextBox><br /> 
                                        <asp:CompareValidator id="cvPersonas" runat="server" CssClass="txtNormal" ErrorMessage="Cantidad inválida. Debe ser mayor que cero." ControlToValidate="txtPersonas" Display="Dynamic" Type="Integer" ValueToCompare="0" Operator="GreaterThan"></asp:CompareValidator> 
                                    </td> 
                                    <td id="tdDias" width="37" runat="server"><strong title="Número de días">Días</strong><br>  
                                        <asp:TextBox ID="txtDias" runat="server" Text='<%# Bind("dias") %>' CssClass="txtNormal" Width="35" MaxLength="3" style="TEXT-ALIGN: right"></asp:TextBox><br /> 
                                        <asp:CompareValidator id="cvDias" runat="server" CssClass="txtNormal" ErrorMessage="Cantidad inválida. Debe ser mayor que cero." ControlToValidate="txtDias" Display="Dynamic" Type="Integer" ValueToCompare="0" Operator="GreaterThan"></asp:CompareValidator> 
                                    </td> 
                                    <td id="tdHoras" width="37" runat="server"><strong title="Número de horas">*Hrs</strong><br>  
                                        <asp:TextBox ID="txtHoras" runat="server" Text='<%# Bind("horas") %>' CssClass="txtNormal" Width="35" MaxLength="2" style="TEXT-ALIGN: right"></asp:TextBox><br /> 
                                        <asp:CompareValidator id="cvHoras" runat="server" CssClass="txtNormal" ErrorMessage="Cantidad inválida. Debe ser mayor que cero." ControlToValidate="txtHoras" Display="Dynamic" Type="Integer" ValueToCompare="0" Operator="GreaterThan"></asp:CompareValidator> 
                                    </td> 
                                    <td id="tdKilometros" width="42" runat="server"><strong title="Número de kilómetros">*Km.</strong><br>  
                                        <asp:TextBox ID="txtKilometros" runat="server" Text='<%# Bind("kilometros") %>' CssClass="txtNormal" Width="40" MaxLength="6" style="TEXT-ALIGN: right"></asp:TextBox><br /> 
                                        <asp:CompareValidator id="cvKilometros" runat="server" CssClass="txtNormal" ErrorMessage="Cantidad inválida. Debe ser mayor que cero." ControlToValidate="txtKilometros" Display="Dynamic" Type="Integer" ValueToCompare="0" Operator="GreaterThan"></asp:CompareValidator> 
                                        <asp:requiredfieldvalidator id="rqfKilometros" runat="server" CssClass="txtNormal" ErrorMessage="El Km. es requerido." ControlToValidate="txtKilometros" Display="Dynamic"></asp:requiredfieldvalidator> 
                                    </td> 
                                    <td id="tdDeducible" width="82" runat="server"><strong>*Deducible</strong><br /> 
                                        <asp:TextBox ID="txtDeducible" runat="server" Text='<%# Bind("impuesto2") %>' Width="80" CssClass="txtNormal" style="TEXT-ALIGN: right" ReadOnly="true"></asp:TextBox></td>  
                                    <td id="tdMonto" width="62" runat="server"><b> 
                                        <asp:Label id="lblMonto" runat="server">*Monto</asp:Label></b><br /> 
                                        <ajax:AjaxPanel ID="AjaxPanel1" runat="server">  
                                            <asp:TextBox id="txtMonto" runat="server" Text='<%# Bind("monto") %>' CssClass="txtNormal" Width="60" MaxLength="9" OnTextChanged="Recalculate_Impuestos" style="TEXT-ALIGN: right" AutoPostBack="true"></asp:TextBox> 
                                        </ajax:AjaxPanel> 
                                        <input type="hidden" id="hdnMonto" runat="server" name="hdnMonto" /> 
                                        <asp:CompareValidator ID="cvMonto" runat="server" CssClass="txtNormal" ErrorMessage="Monto inválido. Debe ser mayor que cero (0.00)." ControlToValidate="txtMonto" Display="Dynamic" Type="Currency" ValueToCompare="0" Operator="GreaterThan"></asp:CompareValidator> 
                                        <asp:requiredfieldvalidator ID="rqfMonto" runat="server" CssClass="txtNormal" ErrorMessage="El monto es requerido." ControlToValidate="txtMonto" Display="Dynamic"></asp:requiredfieldvalidator> 
                                        <asp:Repeater ID="repeaterPoliticas" runat="server" OnItemDataBound="repeaterPoliticas_ItemDataBound">  
                                            <ItemTemplate> 
                                                <input id="hdnAux" visible="false" runat="server" value="" name="hdnAux" /> 
                                                <asp:CompareValidator   
                                                    ID="cvMontoPolitica"   
                                                    runat="server"   
                                                    CssClass="txtNormal" EnableClientScript="true"   
                                                    Text="Política no respetada." 
                                                    ControlToValidate="hdnAux"   
                                                    Display="Dynamic"   
                                                    Type="Currency"   
                                                    ValueToCompare=""   
                                                    Operator="LessThanEqual"   
                                                    ToolTip="">  
                                                </asp:CompareValidator> 
                                            </ItemTemplate> 
                                        </asp:Repeater></td>  
                                    <td id="tdImpuesto1" width="62" runat="server"><strong>*I.V.A.</strong><br /> 
                                        <ajax:AjaxPanel id="Ajaxpanel2" runat="server">  
                                            <asp:dropdownlist ID="ddlImpuesto1" runat="server" DataSource="<%# dsImpuesto1 %>" CssClass="txtNormal" Width="60" DataValueField="idImpuesto" DataTextField="porcIVA" OnSelectedIndexChanged="Recalculate_Impuestos" AutoPostBack="true"></asp:dropdownlist> 
                                            <asp:TextBox id="txtImpuesto1" runat="server" Text='<%# Bind("impuesto1") %>' Width="40" CssClass="txtNormal" style="TEXT-ALIGN: right" ReadOnly="true" Visible="false"></asp:TextBox> 
                                        </ajax:AjaxPanel> 
                                        <asp:requiredfieldvalidator id="rqfImpuesto1" runat="server" CssClass="txtNormal" ErrorMessage="El I.V.A. es requerido." ControlToValidate="ddlImpuesto1" Display="Dynamic"></asp:requiredfieldvalidator></td>  
                                    <td id="tdImpuesto2" width="102" runat="server"><strong>*Impuesto</strong><br /> 
                                        <ajax:AjaxPanel id="Ajaxpanel3" runat="server">  
                                            <asp:dropdownlist id="ddlImpuesto2" runat="server" DataSource="<%# dsImpuesto2 %>" CssClass="txtNormal" Width="60" DataValueField="idImpuesto" DataTextField="descripcion" OnSelectedIndexChanged="Recalculate_Impuestos" AutoPostBack="true"></asp:dropdownlist> 
                                            <asp:TextBox id="txtImpuesto2" runat="server" Text='<%# Bind("impuesto2") %>' Width="40" CssClass="txtNormal" style="TEXT-ALIGN: right" ReadOnly="true"></asp:TextBox> 
                                        </ajax:AjaxPanel> 
                                        <asp:requiredfieldvalidator id="rqfImpuesto2" runat="server" CssClass="txtNormal" ErrorMessage="El impuesto es requerido." ControlToValidate="ddlImpuesto2" Display="Dynamic"></asp:requiredfieldvalidator> 
                                        <asp:requiredfieldvalidator id="rqfTxtImpuesto" runat="server" CssClass="txtNormal" ErrorMessage="El impuesto es requerido." ControlToValidate="txtImpuesto2" Display="Dynamic"></asp:requiredfieldvalidator> 
                                        <asp:CompareValidator id="cvImpuesto2" runat="server" CssClass="txtNormal" ErrorMessage="Cantidad inválida. Debe ser mayor o igual a cero (0.00)." ControlToValidate="txtImpuesto2" Display="Dynamic" Type="Currency" ValueToCompare="0" Operator="GreaterThanEqual"></asp:CompareValidator> 
                                    </td> 
                                    <td><input id="hdnIdComprobacionGastoDetalle" type=hidden value='<%# Bind("idComprobacionGastoDetalle") %>' name=hdnIdComprobacionGastoDetalle runat="server" />&nbsp;</td> 
                                </tr> 
                            </table> 
                            <table cellspacing="0" cellpadding="0" width="100%" border="0" class="txtNormal">  
                                <tr> 
                                    <td align="left">  
                                        <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insertar" : "Actualizar" %>' 
                                            runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>  
                                        </asp:Button>&nbsp;  
                                        <asp:Button ID="btnCancel" Text="Cancelar" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button> 
                                    </td> 
                                </tr> 
                            </table> 
                        </FormTemplate> 
                    </EditFormSettings> 
                    <PagerStyle FirstPageImageUrl="~/Images/telerik\PagingFirst.gif"   
                        LastPageImageUrl="~/Images/telerik\PagingLast.gif"   
                        NextPageImageUrl="~/Images/telerik\PagingNext.gif"   
                        PrevPageImageUrl="~/Images/telerik\PagingPrev.gif" /> 
                </telerik:GridTableView> 
            </DetailTables> 
            <CommandItemSettings AddNewRecordImageUrl="~/Images/telerik\AddRecord.gif"   
                RefreshImageUrl="~/Images/telerik\Refresh.gif" /> 
            <RowIndicatorColumn FilterImageUrl="~/Images/telerik\Filter.gif"   
                SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
            </RowIndicatorColumn> 
            <ExpandCollapseColumn Visible="True" CollapseImageUrl="~/Images/telerik\SingleMinus.gif"   
                ExpandImageUrl="~/Images/telerik\SinglePlus.gif"   
                FilterImageUrl="~/Images/telerik\Filter.gif"   
                SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
            </ExpandCollapseColumn> 
            <Columns> 
                <telerik:GridDateTimeColumn SortExpression="fecha" HeaderText="Fecha" HeaderButtonType="TextButton" 
                    DataField="fecha" UniqueName="fecha"   
                    FilterImageUrl="~/Images/telerik\Filter.gif"   
                    SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                    SortDescImageUrl="~/Images/telerik\SortDesc.gif">  
                </telerik:GridDateTimeColumn> 
            </Columns> 
            <EditFormSettings> 
                <EditColumn CancelImageUrl="~/Images/telerik\Cancel.gif"   
                    EditImageUrl="~/Images/telerik\Edit.gif"   
                    FilterImageUrl="~/Images/telerik\Filter.gif"   
                    InsertImageUrl="~/Images/telerik\Update.gif"   
                    SortAscImageUrl="~/Images/telerik\SortAsc.gif"   
                    SortDescImageUrl="~/Images/telerik\SortDesc.gif"   
                    UpdateImageUrl="~/Images/telerik\Update.gif">  
                </EditColumn> 
            </EditFormSettings> 
            <PagerStyle FirstPageImageUrl="~/Images/telerik\PagingFirst.gif"   
                LastPageImageUrl="~/Images/telerik\PagingLast.gif"   
                NextPageImageUrl="~/Images/telerik\PagingNext.gif"   
                PrevPageImageUrl="~/Images/telerik\PagingPrev.gif" /> 
        </MasterTableView> 
        <FilterMenu> 
            <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
        </FilterMenu> 
    </telerik:RadGrid> 
 

Thanks in advance for any help!
Pieter



3 Answers, 1 is accepted

Sort by
0
psiegers45
Top achievements
Rank 1
answered on 14 Jan 2010, 10:22 PM
OK, let me put the Q in a very short way then... what is the recommended approach using a radgrid in hierarchy mode with zero, one or more comparevalidators against a value in a control that has to be validated on the client when visible?
Hope this gets more response...!
0
Iana Tsolova
Telerik team
answered on 19 Jan 2010, 11:04 AM
Hi psiegers45,

Could you please confirm that the scenario implemention would work as desired if the validators, the validated controls and the repeater are outside the grid?
Also does it makes any difference if you disable ajax on the page?

All the best,
Iana
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
psiegers45
Top achievements
Rank 1
answered on 20 Jan 2010, 03:13 PM
Hi thanks for your reply Lana.

I have made it work by eliminating the repeater altogether and adding the CompareValidators during runtime. Also, I have made sure no other Ajax library was used on this page, but as this is a port from a web application that was designed with VS.NET 2K3 and MagicAjax (mostly using control injection in placeholders to mimic masterpage) other controls on the same page (but in other tabs) still use this MagicAjax library.

Now I am still facing some javascript issues but these and the remaining issues are minor so the port to Radgrid has been a successful one.

Regards and thanks,
Pieter
Tags
Grid
Asked by
psiegers45
Top achievements
Rank 1
Answers by
psiegers45
Top achievements
Rank 1
Iana Tsolova
Telerik team
Share this question
or