As a new user of the Telerik controls I am still feeling my way around - I'm used to the Infragistcs control suite so I'm sure there is something simple I am missing. Here is the problem:
1) Master Page with standar header/footer, content panel
2) Child Content Page with RadGrid, RadToolBar
3) RadToolBar has an "Add" button which does an async postback - the handler calls a method which configures the Title and IconUrl of the RadWindow (since it functions for both "add" and "edit") and then adds script function call to open the RadWindow - works fine - the RadWindow opens as expected.
4) There are two asp:TextBox controls on the RadWindow and both have RequiredFieldValidators configured
5) There are two buttons - "Cancel" and "Save" - the cancel button functions fine and prompt's user to confirm cancellation and closes the RadWindow if true otherwise does not. "CausesValidation" is set to false on the Cancel button.
6) The Save button has "CausesValidation" set to true - but when I click the button the validation does not appear to work because the page post's back and I get an error because I'm trying to save a record with no values.
The question is, why are the RequiredFieldValidators not "firing" - I expect the error text to show and focus to be set to the control failing validation - am I missing a setting or something?? Here is the content page markup...also attached an image of what the page looks like when the RadWindow is opened in "add" context.
<%@ Page Title="" Language="C#" MasterPageFile="~/ToolMaster.Master" AutoEventWireup="true" CodeBehind="Roles.aspx.cs" Inherits="SAIC.ISR.CMO.WebUI.Roles" %> <%@ MasterType VirtualPath="~/ToolMaster.Master" %> <asp:Content ID="RolesContent" ContentPlaceHolderID="MasterContentPlaceHolder" runat="server"> <div class="pageContentOuter"> <div class="pageContentInner"> <br /> <div class="group" style="width: 98%;"> <div class="groupHeader"> <span class="left"> <span class="small-white-bold-label">Roles</span> </span> <span class="right"> <asp:Label ID="RecordCountLabel" runat="server" CssClass="small-white-bold-label"> </asp:Label> </span> </div> <div class="groupToolbar"> <div class="groupToolbarContent"> <telerik:RadToolBar ID="RolesRadToolbar" runat="server" Width="100%" OnButtonClick="RolesRadToolbar_ButtonClick"> <Items> <telerik:RadToolBarButton AccessKey="N" Text="New" CausesValidation="false" PostBack="true" ToolTip="Create New Role" CommandName="New" ImageUrl="Content/Images/add16.png" ImagePosition="Left"></telerik:RadToolBarButton> <telerik:RadToolBarButton AccessKey="R" Text="Refresh" CausesValidation="false" PostBack="true" ToolTip="Refresh Roles List" CommandName="Refresh" ImageUrl="Content/Images/refresh16.png" ImagePosition="Left"></telerik:RadToolBarButton> </Items> </telerik:RadToolBar> </div> </div> <div class="groupContent"> <telerik:RadGrid ID="RolesRadGrid" runat="server" AllowPaging="true" AllowSorting="true" AutoGenerateEditColumn="false" AutoGenerateDeleteColumn="false" PageSize="15" ShowStatusBar="true" OnItemDataBound="RolesRadGrid_ItemDataBound" OnDeleteCommand="RolesRadGrid_DeleteCommand" OnEditCommand="RolesRadGrid_EditCommand" OnPageIndexChanged="RolesRadGrid_PageIndexChanged"> <PagerStyle Mode="NextPrevAndNumeric" Position="Bottom" /> <MasterTableView AutoGenerateColumns="false" DataKeyNames="RoleID"> <Columns> <telerik:GridBoundColumn UniqueName="RoleID" DataField="RoleID" DataType="System.Int32" Visible="false"> <ItemStyle HorizontalAlign="Left" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="FullName" DataField="FullName" DataType="System.String" MaxLength="100" HeaderText="Role Name"> <ItemStyle HorizontalAlign="Left" Width="20%" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Description" DataField="Description" DataType="System.String" MaxLength="10" HeaderText="Role Description"> <ItemStyle HorizontalAlign="Left" Width="80%" /> </telerik:GridBoundColumn> <telerik:GridButtonColumn UniqueName="EditColumn" CommandName="Edit" ButtonType="ImageButton" ImageUrl="Content/Images/editbutton.png"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="22px" Height="20px" /> </telerik:GridButtonColumn> <telerik:GridButtonColumn UniqueName="DeleteColumn" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmTitle="Delete Role" ConfirmText="Are you sure you want to delete this role?" ButtonType="ImageButton" ImageUrl="Content/Images/deleteButton.png"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="22px" Height="20px" /> </telerik:GridButtonColumn> </Columns> <NoRecordsTemplate> <div class="center"> <br /> <br /> <span class="small-black-bold-label">No Roles Found</span> <br /> <br /> </div> </NoRecordsTemplate> </MasterTableView> </telerik:RadGrid> </div> </div> </div> </div> <telerik:RadWindowManager ID="RolesRadWindowManager" runat="server" EnableEmbeddedScripts="true" EnableViewState="true"> <Windows> <telerik:RadWindow ID="AddEditWindow" runat="server" Height="250px" Width="500px" EnableEmbeddedScripts="true" Animation="Fade" Modal="true" Behaviors="None" KeepInScreenBounds="true" EnableViewState="true"> <ContentTemplate> <div class="row"> <span class="label" style="width: 30%;"> <asp:RequiredFieldValidator ID="RoleNameValidator" runat="server" ControlToValidate="RoleNameTextBox" CssClass="small-red-bold-label" Text="*" SetFocusOnError="true"> </asp:RequiredFieldValidator> <span class="small-red-label">Role Name:</span> </span> <span class="field" style="width: 65%;"> <asp:TextBox ID="RoleNameTextBox" runat="server" CausesValidation="true" CssClass="textbox" MaxLength="50" Width="300px"></asp:TextBox> </span> </div> <div class="row" style="height: 55px;"> <span class="label" style="width: 30%;"> <asp:RequiredFieldValidator ID="DescriptionValidator" runat="server" ControlToValidate="RoleDescriptionTextBox" CssClass="small-red-bold-label" Text="*" SetFocusOnError="true"> </asp:RequiredFieldValidator> <span class="small-red-label">Description:</span> </span> <span class="field" style="width: 65%;"> <asp:TextBox ID="RoleDescriptionTextBox" runat="server" CausesValidation="true" CssClass="textbox" TextMode="MultiLine" Height="50px" Width="300px"></asp:TextBox> </span> </div> <div class="row"><span class="label"></span><span class="field"></span></div> <div class="row"> <span class="label" style="width: 48%;"> <asp:Button ID="SaveButton" CausesValidation="true" runat="server" Text="Save" Width="100px" OnClick="SaveButton_Click" /> </span> <span class="field" style="width: 48%;"> <asp:Button ID="CancelButton" CausesValidation="false" runat="server" Text="Cancel" Width="100px" /> </span> </div> </ContentTemplate> </telerik:RadWindow> </Windows> </telerik:RadWindowManager> <asp:HiddenField ID="AddEditContextHidden" runat="server" /> <div class="spacer"> </div> </asp:Content>