Hi ,
I have a rad grid in which I want to do a custom validation at the time of adding or editing. But the custom validator server side code is not firing. Any kind of suggestion or help would be appreciated. Please find my code below.
Code for Custom validator.
I have a rad grid in which I want to do a custom validation at the time of adding or editing. But the custom validator server side code is not firing. Any kind of suggestion or help would be appreciated. Please find my code below.
<telerik:RadGrid ID="radgrdWell" OnItemCreated="RadgrdPropertySetup_ItemCreated" BorderColor="#009933" BorderWidth="1px" FilterItemStyle-BackColor="#F1F7EE" OnItemDataBound="PropertySetup_ItemDataBoundCommand" OnUpdateCommand="PropertySetup_UpdateGridRow" OnInsertCommand="PropertySetup_InsertGridRow" Skin="Hay" EnableEmbeddedSkins="false" runat="server" AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="true" GridLines="None" ShowGroupPanel="false" AutoGenerateColumns="false" OnNeedDataSource="PropertySetup_Needdatasource"> <GroupingSettings CaseSensitive="false" /> <ClientSettings ClientMessages-DragToGroupOrReorder="DragToReorder" AllowColumnsReorder="True" EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="True" /> <Resizing AllowColumnResize="false" /> <ClientEvents OnPopUpShowing="PopUpShowing" /> </ClientSettings> <PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="True" ForeColor="#009900" Font-Names="verdana" Font-Size="8pt" /> <MasterTableView EditMode="PopUp" CommandItemDisplay="Top" EnableHeaderContextMenu="true" CommandItemSettings-AddNewRecordText="Add"> <CommandItemTemplate> <table width="100%" cellpadding="4px"> <tr> <td width="40%"> <asp:Button ID="lbtnAddNew" runat="server" Text="Add" CommandName="InitInsert" CssClass="buttonlarge" CausesValidation="false" /> <asp:Button ID="lbtnRefresh" runat="server" Text="Refresh Data" CommandName="RebindGrid" CssClass="buttonlarge" CausesValidation="false" /> </td> <td align="left"> <%-- <asp:Label ID="lblHeading" runat="server" CssClass="SuccessLabel" Text="Studies" />--%> </td> </tr> </table> </CommandItemTemplate> <EditFormSettings PopUpSettings-Modal="true" EditColumn-ButtonType="ImageButton" EditColumn-InsertText="Add" FormTableButtonRowStyle-HorizontalAlign="Right" EditColumn-ItemStyle-HorizontalAlign="Center" EditColumn-CancelImageUrl="../../wpresources/IFDB/Images/Cancel-60.png" EditColumn-InsertImageUrl="../../wpresources/IFDB/Images/Add-60.png" EditColumn-UpdateImageUrl="../../wpresources/IFDB/Images/Update-60.png"> <FormMainTableStyle GridLines="Horizontal" Width="100%" CssClass="Spacing" HorizontalAlign="Center" /> <FormTableStyle Width="100%" CssClass="Spacing" HorizontalAlign="Center" /> <FormStyle Width="100%"></FormStyle> <FormCaptionStyle ForeColor="#ececd8" /> <PopUpSettings Width="450px" /> </EditFormSettings> <Columns> <telerik:GridEditCommandColumn UniqueName="EditColumn" ButtonType="ImageButton" UpdateText="Save" HeaderText="" EditImageUrl="~/wpresources/IFDB/Images/Edit.png" InsertImageUrl="~/wpresources/IFDB/Images/Update.gif" UpdateImageUrl="~/wpresources/IFDB/Images/Update.gif" CancelImageUrl="~/wpresources/IFDB/Images/Cancel.gif"> <HeaderStyle Width="6%"></HeaderStyle> <ItemStyle VerticalAlign="Top" /> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn UniqueName="Description" HeaderText="Description *" SortExpression="Description" DataField="Description" ItemStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblDescription" runat="server" Width="120" CssClass="gridlabel" DataFormatString="{0:d}" Text='<%#Eval("Description") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtDescription" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("Description") %>'> </asp:TextBox> <asp:RequiredFieldValidator ID="rfdDescription" runat="server" ControlToValidate="txtDescription" ValidationGroup="vgPropertyValueSetup" Text="*" Display="Dynamic"></asp:RequiredFieldValidator> <asp:Label ID="lblOrganisationid" runat="server" Text='<%#Eval("Organisationid") %>' CssClass="gridlabel" Visible="false"></asp:Label> <asp:Label ID="lblParentPropertyValueID" runat="server" Text='<%#Eval("FkOrganisationHierarchyID") %>' CssClass="gridlabel" Visible="false"></asp:Label> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ParentPropertyValueName" UniqueName="Type" ItemStyle-Wrap="false" HeaderText="Parent Property Name *" SortExpression="ParentPropertyValueName" HeaderStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblType" CssClass="gridlabel" Text='<%# Eval("ParentPropertyValueName") %>' runat="server"> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="drpdwnParentType" DataTextField="Name" DataValueField="pkOrganisationHierarchyValueID" CssClass="NormalDDL" runat="server"> </asp:DropDownList> <asp:RequiredFieldValidator ID="rfvParentType" ControlToValidate="drpdwnParentType" ValidationGroup="vgPropertyValueSetup" Text="*" InitialValue="-1" runat="server" Display="Dynamic" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="UniqueWellID" ItemStyle-Wrap="false" HeaderText="Unique Well Identifier *" SortExpression="UniqueWellID" HeaderStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblUWID" runat="server" CssClass="gridlabel" Text='<%# Eval("UniqueWellID") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtUWID" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("UniqueWellID") %>'> </asp:TextBox> <asp:RequiredFieldValidator ID="rfdUWID" runat="server" ControlToValidate="txtUWID" ValidationGroup="vgPropertyValueSetup" Text="*" Display="Dynamic"></asp:RequiredFieldValidator> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Latitude" ItemStyle-Wrap="false" HeaderText="Latitude" SortExpression="Latitude"> <ItemTemplate> <asp:Label ID="lblLatitude" runat="server" CssClass="gridlabel" Text='<%# Eval("Latitude") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtLatitude" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("Latitude") %>'> </asp:TextBox> <asp:CustomValidator ID="cvLatitude" runat="server" ControlToValidate="txtLatitude" OnServerValidate="ServerValidate" ErrorMessage="You Must Fill" ValidationGroup="vgPropertyValueSetup"></asp:CustomValidator> <asp:Label ID="lblvalError" runat="server" CssClass="ErrorLabel"></asp:Label> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Longitude" ItemStyle-Wrap="false" HeaderText="Longitude *" SortExpression="Longitude" > <ItemTemplate> <asp:Label ID="lblLongitude" runat="server" CssClass="gridlabel" Text='<%# Eval("Longitude") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtLongitude" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("Longitude") %>'> </asp:TextBox> <asp:CustomValidator ID="cvLongitude" runat="server" ControlToValidate="txtLongitude" OnServerValidate="ServerValidate" ErrorMessage="You Must Fill" ValidationGroup="vgPropertyValueSetup"></asp:CustomValidator> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="UTMZone" ItemStyle-Wrap="false" HeaderText="UTMZone" SortExpression="UTMZone" > <ItemTemplate> <asp:Label ID="lblUTMZone" runat="server" CssClass="gridlabel" Text='<%# Eval("UTMZone") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtUTMZone" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("UTMZone") %>'> </asp:TextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="UTMXCoordinate" ItemStyle-Wrap="false" HeaderText="UTM X coordinate (wellhead)" SortExpression="UTMXCoordinate" HeaderStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblUTMXCoordinate" runat="server" CssClass="gridlabel" Text='<%# Eval("UTMXCoordinate") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtUTMXCoordinate" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("UTMXCoordinate") %>'> </asp:TextBox> <asp:CustomValidator ID="cvUTMXCoordinate" runat="server" ControlToValidate="txtUTMXCoordinate" OnServerValidate="ServerValidate" ErrorMessage="You Must Fill" ValidationGroup="vgPropertyValueSetup"></asp:CustomValidator> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="UTMYCoordinate" ItemStyle-Wrap="false" HeaderText="UTM Y coordinate (wellhead)" SortExpression="UTMYCoordinate" HeaderStyle-Wrap="false" > <ItemTemplate> <asp:Label ID="lblUTMYCoordinate" runat="server" CssClass="gridlabel" Text='<%# Eval("UTMYCoordinate") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtUTMYCoordinate" CssClass="NormalTextBox" runat="server" Width="120" Text='<%# Eval("UTMYCoordinate") %>'> </asp:TextBox> <asp:CustomValidator ID="cvUTMYCoordinate" runat="server" ControlToValidate="txtUTMYCoordinate" OnServerValidate="ServerValidate" ErrorMessage="You Must Fill" ValidationGroup="vgPropertyValueSetup"></asp:CustomValidator> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="LatLonUnits" ItemStyle-Wrap="false" HeaderText="LatLonUnits" SortExpression="LatLonUnits"> <ItemTemplate> <asp:Label ID="lblLatLonUnits" runat="server" CssClass="gridlabel" Text='<%# Eval("LatLonsystem") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="ddlLatLonUnits" DataTextField="LookUpType" DataValueField="LookupValue" CssClass="NormalDDL" runat="server"> </asp:DropDownList> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="EffectiveDate" UniqueName="EffectiveDate" ItemStyle-Wrap="false" HeaderText="Effective Date *" SortExpression="EffectiveDate"> <ItemTemplate> <asp:Label ID="lblEffectiveDate" runat="server" Width="120" CssClass="gridlabel" DataFormatString="{0:d}" Text='<%# Eval("EffectiveDate") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <telerik:RadDatePicker ID="radEffectiveDate" runat="server" Width="120" MinDate="1/1/0001" MaxDate="12/31/9999" DbSelectedDate='<%# Bind("EffectiveDate") %>'> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="rfvEffectiveDate" ControlToValidate="radEffectiveDate" ValidationGroup="vgPropertyValueSetup" Text="*" InitialValue="" runat="server" Display="Dynamic" /> <asp:CompareValidator ID="CVEffectiveWithExpiry" ControlToCompare="radEffectiveUntil" ValidationGroup="vgPropertyValueSetup" ControlToValidate="radEffectiveDate" Type="Date" Operator="LessThanEqual" Display="None" ErrorMessage="Effective Date can not exceed Expiry Date" runat="server"></asp:CompareValidator> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="EffectiveUntil" UniqueName="EffectiveUntil" ItemStyle-Wrap="false" HeaderText="Effective Until *" SortExpression="EffectiveUntil"> <ItemTemplate> <asp:Label ID="lblEffectiveUntil" runat="server" CssClass="gridlabel" Width="120" DataFormatString="{0:d}" Text='<%# Eval("EffectiveUntil") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <telerik:RadDatePicker ID="radEffectiveUntil" Width="120" runat="server" MinDate="1/1/0001" MaxDate="12/31/9999" DbSelectedDate='<%# Bind("EffectiveUntil") %>'> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="rfvEffectiveUntil" ControlToValidate="radEffectiveUntil" ValidationGroup="vgPropertyValueSetup" Text="*" InitialValue="" runat="server" Display="Dynamic" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="AddDate" UniqueName="AddDate" HeaderText="Add Date *" SortExpression="AddDate" ItemStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblAddDate" Width="120" runat="server" CssClass="gridlabel" DataFormatString="{0:d}" Text='<%# Eval("AddDate") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <telerik:RadDatePicker Width="120" ID="radAddDate" runat="server" MinDate="1/1/0001" MaxDate="12/31/9999" DbSelectedDate='<%# Bind("AddDate") %>'> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="rfvAddDate" ControlToValidate="radAddDate" Text="*" ValidationGroup="vgPropertyValueSetup" InitialValue="" runat="server" Display="Dynamic" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="Status" HeaderText="Status *" DataField="StatusName" SortExpression="StatusName" ItemStyle-Wrap="false"> <ItemTemplate> <asp:Label ID="lblStatus" CssClass="gridlabel" Text='<%# Eval("StatusName") %>' runat="server"> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="drpdwnStatus" DataSource='<%#FetchStatusValues() %>' DataTextField="CategoryName" DataValueField="CategoryUID" CssClass="NormalDDL" runat="server"> </asp:DropDownList> <asp:RequiredFieldValidator ID="rfvStatus" ControlToValidate="drpdwnStatus" Text="*" ValidationGroup="vgPropertyValueSetup" InitialValue="-1" runat="server" Display="Dynamic" /> </EditItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView></telerik:RadGrid>protected void ServerValidate(object sender, ServerValidateEventArgs args) { CustomValidator custValidator = (CustomValidator)sender; GridEditableItem eventargs = (GridEditableItem)custValidator.NamingContainer; string Latitude = (eventargs.FindControl("txtLatitude") as TextBox).Text; string Longitude = (eventargs.FindControl("txtLongitude") as TextBox).Text; string UTMXCoordinate = (eventargs.FindControl("txtUTMXCoordinate") as TextBox).Text; string UTMYCoordinate = (eventargs.FindControl("txtUTMYCoordinate") as TextBox).Text; if ((string.IsNullOrEmpty(Latitude) || string.IsNullOrEmpty(Longitude)) && (string.IsNullOrEmpty(UTMXCoordinate) || string.IsNullOrEmpty(UTMYCoordinate))) args.IsValid = false; else if ((!string.IsNullOrEmpty(Latitude) && !string.IsNullOrEmpty(Longitude)) || (!string.IsNullOrEmpty(UTMXCoordinate) && !string.IsNullOrEmpty(UTMYCoordinate))) args.IsValid = true; else args.IsValid = true; }