I've an editable RadGrid which on edit shows a custom user control as a pop-up. The grid was embedded in an update panel and the user control used jQuery Validation plugin for validating the inputs.
I was facing issues with displaying the wait panel during ajax calls. To resolve this I removed the update panel and implemented RadAjaxManager following which the wait panel is functioning perfectly. But that broke the jQuery Validation plugin functionality. What I understand is that RadAjaxManager handles the ajax requests and doesnt trigger the events that the validation plugin is hooked to.
Is there any way of getting RadGrid + RadAjaxManager + jQuery Validation Plugin working. I do not want to do old-school way of placing custom validation code as there is extensive validation implemented using the validation plugin. Any workaround to get this working would be greatly appreciated.
Thanks in advance.
Regards.
5 Answers, 1 is accepted
Could you paste your mark-up and code behind?
Regards, Tsvetoslav
the Telerik team
Master Page<body> <form> <div> <asp:ContentPlaceHolder ID="BodyPlaceHolder" runat="server"> </asp:ContentPlaceHolder> </div> </form></body> Child Page<asp:Content ID="ctnStartPage" ContentPlaceHolderID="BodyPlaceHolder" runat="server"> <telerik:RadScriptManager ID="ScriptManager" runat="server"> </telerik:RadScriptManager> <div id="divTabs" style="width: 100%; height: 100%;"> <telerik:RadTabStrip ID="masterTabStrip" runat="server" OnTabClick="masterTabString_OnTabClick"MultiPageID="RadMultiPage1" Orientation="VerticalLeft" Style="float: left"> <Tabs> <telerik:RadTab Text="My Alerts" Selected="true" SelectedCssClass="tabSelected"> </telerik:RadTab> <telerik:RadTab Text="Global Alerts" SelectedCssClass="tabSelected"> </telerik:RadTab> <telerik:RadTab Text="Admin" SelectedCssClass="tabSelected"> </telerik:RadTab> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage runat="server" CssClass="multiPage" ID="RadMultiPage1" SelectedIndex="0"> <telerik:RadPageView runat="server" ID="PageView1" ContentUrl="~/Pages/InternalAlertList.aspx" Style="width: 100%; height: 100%;"> </telerik:RadPageView> <telerik:RadPageView runat="server" ID="RadPublicPage" ContentUrl="~/Pages/InternalAlertList.aspx?Private=1" Style="width: 100%; height: 100%;"> </telerik:RadPageView> <telerik:RadPageView runat="server" ID="PageView2" ContentUrl="~/Pages/InternalAlertList.aspx?Private=0" Style="width: 100%; height: 100%;"> </telerik:RadPageView> </telerik:RadMultiPage> </div></asp:content>InternalAlertList page<head> <telerik:RadScriptBlock ID="internalAlert_ScriptBlock" runat="server"> <script type="text/javascript" src="../Scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="../Scripts/jquery.validate.min.js"></script> <script type="text/javascript"> // some custom script. </script></head><body> <form id="registerForm" runat="server" style="width:100%; height:100%;"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <div style="height: 100%; width: 100%"> <telerik:RadGrid ID="rgAlertList" runat="server" PageSize="10" Width="100%" Height="635px" AllowSorting="True" AllowPaging="True" ShowGroupPanel="True" DataSourceID="ObjectDataSource1" GridLines="None" AutoGenerateColumns="False" AllowAutomaticUpdates="false" AllowAutomaticInserts ="false" Style="border: 0; outline:none;" Skin="Office2007" AllowAutomaticDeletes="false" OnItemDataBound="rgAlertList_ItemDataBound" OnDataBound="rgAlertList_DataBound"> <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle> <MasterTableView DataKeyNames="InternalAlertKey" AllowMultiColumnSorting="True" CommandItemDisplay="Top" EditMode="PopUp" AllowAutomaticUpdates="false" AllowAutomaticInserts="false" AllowFilteringByColumn="true" PagerStyle-AlwaysVisible="true" CommandItemSettings-ShowRefreshButton="false" CommandItemSettings-AddNewRecordText="Add Alert" CommandItemSettings-AddNewRecordImageUrl="../Images/add_btn.gif"> <EditFormSettings EditFormType="WebUserControl" UserControlName="../WebUserControl/EditInternalAlert.ascx" PopUpSettings-Width="90%" PopUpSettings-Height="85%" PopUpSettings-Modal="true" CaptionDataField="AlertName" CaptionFormatString="{0}" PopUpSettings-ScrollBars="Auto" FormStyle-Font-Names="Verdana" FormStyle-Font-Size="Medium"> </EditFormSettings> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" EditImageUrl="../Images/edit_btn.gif" HeaderText="Edit" HeaderStyle-Width="30px"> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn AllowFiltering="false" HeaderStyle-Width="120px" HeaderText="Actions" Resizable="true"> <ItemTemplate> <asp:LinkButton ID="btnEnable" runat="server" OnClick="OnGridCommandTriggered" CommandName="Enable" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "InternalAlertKey").ToString()%>' style="cursor:hand;" Text="Enable" Visible='<%# DataBinder.Eval(Container.DataItem, "Status").ToString() == "Disabled"%>'/> <asp:LinkButton ID="btnDisable" runat="server" OnClick="OnGridCommandTriggered" CommandName="Disable" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "InternalAlertKey").ToString()%>' style="cursor:hand;" Visible='<%# DataBinder.Eval(Container.DataItem, "Status").ToString() == "Enabled"%>' Text="Disable"/> <asp:LinkButton ID="btnTerminate" runat="server" OnClick="OnGridCommandTriggered" CommandName="Terminate" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "InternalAlertKey").ToString()%>' style="cursor:hand;" Text="Terminate"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Actions" HeaderStyle-Width="85" Resizable="true"> <ItemTemplate> <asp:LinkButton ID="btnSubscribe" runat="server" OnClick="OnGridCommandTriggered" CommandName="Subscribe" Text="Subscribe" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "InternalAlertKey").ToString()%>' style="cursor:hand;" Visible='<%# !IsSubscribed(DataBinder.Eval(Container.DataItem, "Recipients")) %>'/> <asp:LinkButton ID="btnUnsubscribe" runat="server" OnClick="OnGridCommandTriggered" CommandName="Unsubscribe" Text="Unsubscribe" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "InternalAlertKey").ToString()%>' style="cursor:hand;" Visible='<%# IsSubscribed(DataBinder.Eval(Container.DataItem, "Recipients")) %>'/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="BusinessUnit" SortExpression="BusinessUnit" HeaderText="Business Unit Key" DataField="BusinessUnit" Visible="false" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="BusinessUnitName" SortExpression="BusinessUnitName" HeaderText="Business Unit" DataField="BusinessUnitName" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" Resizable="true" HeaderStyle-Width="55px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="InternalAlertKey" SortExpression="InternalAlertKey" HeaderText="InternalAlertKey" Resizable="true" DataField="InternalAlertKey" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="RuleKey" SortExpression="RuleKey" HeaderText="RuleKey" DataField="RuleKey" Visible="false" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="AlertName" SortExpression="AlertName" HeaderText="Alert Name" DataField="AlertName" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" HeaderStyle-Width="15%" ItemStyle-Wrap="true" Resizable="true" > </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Granularity" SortExpression="Granularity" HeaderText="Granularity" DataField="Granularity" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" HeaderStyle-Width="75px" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Devices" HeaderStyle-Width="105" Resizable="true"> <ItemTemplate> <asp:Label ID="lblDevices" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "DeviceType").ToString()%>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="AlertDescription" SortExpression="AlertDescription" HeaderText="Alert Description" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" DataField="AlertDescription" HeaderStyle-Width="30%" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="CreatedBy" SortExpression="CreatedBy" HeaderText="Alias" DataField="CreatedBy" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="CreatedBy" SortExpression="CreatedBy" HeaderText="Created By" DataField="CreatedBy" AllowFiltering="false" AllowSorting="false" ShowFilterIcon="false" HeaderStyle-Width="90px" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Status" SortExpression="Status" HeaderText="Status" DataField="Status" AllowFiltering="false" AllowSorting="false" Resizable="true"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="History" Resizable="true"> <ItemTemplate> <asp:LinkButton ID="btnViewHistory" runat="server" OnClick="OnGridCommandTriggered" CommandName="ViewHistory" Text="History" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "RuleKey").ToString()%>' style="cursor:hand;"/> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="true"> <Selecting AllowRowSelect="True"></Selecting> <ClientMessages DragToGroupOrReorder="Drag to group" /> <ClientEvents OnRowDblClick="RowDblClick" OnPopUpShowing="_OnPopupShowing"/> <Resizing AllowColumnResize="true"/> </ClientSettings> </telerik:RadGrid> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllAlertSubscriptions" TypeName="GasQualityInternalAlertWeb.Pages.InternalAlertList" DataObjectTypeName="InternalAlertListItem" OnSelecting="ObjectDataSource1_Selecting" SortParameterName="sortExpression"> <SelectParameters> <asp:Parameter Name="userID" Type="String" /> <asp:SessionParameter SessionField="IsUserAdmin" Name="isAdmin" Type="Boolean" DefaultValue="false" /> </SelectParameters> </asp:ObjectDataSource> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="lpInternalAlertGrid"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rgAlertList"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgAlertList" LoadingPanelID="lpInternalAlertGrid" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> <ClientEvents OnRequestStart="RequestStart" OnResponseEnd="ResponseEnd" /> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="lpInternalAlertGrid" runat="server" Transparency="10"> <asp:Panel ID="pnlLoadingImage" runat="server" BackColor="#000" style="width:100%; height:100%;"> <table style="width:100%; height:100%;"> <tr> <td> <asp:Image ImageUrl="~/Images/Loading.gif" runat="server" ID="ptLoadingImage" /> </td> </tr> </table> </asp:Panel> </telerik:RadAjaxLoadingPanel> </div> </form></body>EditInternalAlert user control<asp:Panel runat="server" ID="pnlEditInternalAlert" style="height:100%;"> <table border="0px" style="width:100%;height:90%;font-family:Verdana;font-size:small;"> <tr> <td> <asp:Panel ID="pnlAlertDetails" runat="server" GroupingText="Alert Details"> <table id="tblAlertDetails" border="0px" style="width:100%;height:100%;font-family:Verdana;font-size:small;"> <tr> <td style="width:17%;"> <asp:Label ID="lblAlertName" runat="server" Text="Alert Name" /></td> <td style="width:35%;"> <asp:TextBox ID="txtAlertName" runat="server" Width="90%" style="font-family:Verdana;font-size:small;" class="required" MaxLength="50"/> </td> <td style="width:15%;"></td> <td></td> </tr> <tr> <td> <asp:Label ID="lblBusinessUnit" runat="server" Text="Business Unit" /> </td> <td> <asp:DropDownList ID="ddBusinessUnit" runat="server" class="defaultInvalid" style="font-family:Verdana;font-size:small;width:90%;" AutoPostBack="true" OnSelectedIndexChanged="OnBusinessUnitChanged" OnDataBound="SetDefaultOnDataBound"> </asp:DropDownList> </td> <td></td> <td></td> </tr> <tr> <td> <asp:Label ID="lblDeviceType" runat="server" Text="Device Type" /> </td> <td> <asp:DropDownList ID="ddDeviceType" runat="server" AutoPostBack="True" class="defaultInvalid" OnSelectedIndexChanged="OnDeviceTypeChanged" OnDataBound="SetDefaultOnDataBound" style="font-family:Verdana;font-size:small;width:90%;"> </asp:DropDownList> </td> <td> <asp:Label ID="lblAnlzrMeasureAttribute" runat="server" Text="Analyzer Type" Visible="false" /> </td> <td> <asp:DropDownList ID="ddAnlzrMeasureAttribute" runat="server" class="defaultInvalid" style="font-family:Verdana;font-size:small;width:90%;" Visible="false" AutoPostBack="true" OnSelectedIndexChanged="OnMeasureAttributeChanged" OnDataBound="SetDefaultOnDataBound"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblChromatographArray" Visible="false" runat="server" Text="Chromatographs" /> <asp:Label ID="lblAnalyzerArray" Visible="false" runat="server" Text="Analyzers" /> </td> <td> <tel:ctlDropDown ID="ddChromatographs" Runat="server" Visible="false" style="font-family:Verdana;font-size:small;" Width="275"/> <tel:ctlDropDown ID="ddAnalyzers" Runat="server" Visible="false" style="font-family:Verdana;font-size:small;" width="275"/> </td> <td> <asp:Label ID="lblGranularity" runat="server" Text="Data Granularity" /> </td> <td> <asp:DropDownList ID="ddGranularity" runat="server" OnDataBound="SetDefaultOnDataBound" AutoPostBack="true" style="font-family:Verdana;font-size:small;" class="defaultInvalid" OnSelectedIndexChanged="OnDataGranularityChanged"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblIsPublicAlert" runat="server" Text="Make Alert Public" /> </td> <td> <asp:CheckBox ID="cbIsAlertPublic" runat="server" /> <asp:Image ID="imgPublicAlertHelp" runat="server" ImageUrl="~/Images/QuestionMark.jpg" ToolTip="By making an alert public, other users will be able to subscribe to this alert and get notified when the business condition is met." /> </td> <td></td> <td></td> </tr> </table> </asp:Panel> </td> </tr> <tr> <td> <asp:Panel ID="pnlAnalyzerCondition" runat="server" GroupingText="Analyzer conditions" Visible="false"> <tel:ctlCondition ID="ctrlAnalyzerCondition" runat="server" Mode='<%# "Analyzers" %>'/> </asp:Panel> <asp:Panel ID="pnlChromatographCondition" runat="server" GroupingText="Chromatograph conditions" Visible="false"> <asp:Button ID="btnAddCondition" runat="server" Text="Add condition" onclick="OnAddConditionClicked"/><br /> <asp:CheckBox ID="cbApplyAllConditions" runat="server" Text="Use all conditions"/> <div id="divChromConditionPlaceHolders" runat="server"> </div> </asp:Panel> </td> </tr> <tr> <td> <asp:Panel ID="pnlAlertDescription" runat="server" GroupingText=" "> <table id="tblAlertDescription" border="0px" style="width:100%;height:100%;font-family:Verdana;font-size:small;"> <tr> <td style="width:17%"> <asp:Label ID="lblAlertDescription" runat="server" Text="Alert Description" /> </td> <td colspan="3"> <asp:TextBox ID="txtAlertDescription" runat="server" MaxLength="255" OnTextChanged="OnTextChanged" Rows="3" AutoPostBack="true" style="font-family:Verdana;font-size:small;" TextMode="MultiLine" Width="100%"/> <asp:CheckBox ID="cbAlertDescriptionEdited" runat="server" Checked="false" Visible="false" /> </td> </tr> </table> </asp:Panel> </td> </tr> <tr> <td> <asp:Panel ID="pnlNotification" runat="server" GroupingText="Notification"> <telerik:RadTabStrip ID="tsNotification" runat="server" MultiPageID="mpNotification"> <Tabs> <telerik:RadTab Selected="True" SelectedCssClass="tabSelected" Text="Email"> </telerik:RadTab> <telerik:RadTab SelectedCssClass="tabSelected" Text="SMS"> </telerik:RadTab> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage ID="mpNotification" runat="server" CssClass="multiPage" Height="155px" SelectedIndex="0" Width="99%"> <telerik:RadPageView ID="pvEmail" runat="server" style="background-color:White;"> <table id="tblEmail" style="width:100%;height:155px;font-family:Verdana;font-size:small;"> <tr> <td style="width:16%"> <asp:Label ID="lblToRecipients" runat="server" Text="To" /> </td> <td> <asp:TextBox ID="txtToRecipients" runat="server" class="required validEmailRecipient" Height="47px" MaxLength="800" style="font-family:Verdana;font-size:small;" TextMode="MultiLine" Width="98%" /><br /> <asp:Label runat="server" ID="lblRecipientHint" style="font-size:x-small; font-style:italic;"></asp:Label> </td> </tr> <tr> <td> <asp:Label ID="lblCcRecipients" runat="server" Text="Cc" /> </td> <td> <asp:TextBox ID="txtCcRecipients" runat="server" class="validEmailRecipient" MaxLength="800" style="width:98%;font-family:Verdana;font-size:small;" /> </td> </tr> <tr> <td> <asp:Label ID="lblSubject" runat="server" Text="Subject" /> </td> <td> <asp:TextBox ID="txtSubject" runat="server" class="required" MaxLength="255" style="width:98%;font-family:Verdana;font-size:small;" /> </td> </tr> <tr> <td> <asp:Label ID="lblHeader" runat="server" Text="Header" Visible="false" /> </td> <td> <asp:TextBox ID="txtHeader" runat="server" Height="16px" style="font-family:Verdana;font-size:small;" TextMode="MultiLine" Visible="false" Width="66px" /> </td> </tr> <tr> <td> <asp:Label ID="lblFooter" runat="server" Text="Footer" Visible="false" /> </td> <td> <asp:TextBox ID="txtFooter" runat="server" Height="16px" style="font-family:Verdana;font-size:small;" TextMode="MultiLine" Visible="false" Width="68px" /> </td> </tr> </table> </telerik:RadPageView> <telerik:RadPageView ID="pvSMS" runat="server"> <table ID="tblSMS" style="width:100%; height:215px;font-family:Verdana;font-size:small; visibility:hidden"> <tr> <td colspan="2"> <asp:CheckBox ID="cbEnableSMS" runat="server" style="font-family:Verdana;font-size:small;" Text="Enable SMS" /> </td> </tr> <tr> <td style="width:16%;"> <asp:Label ID="lblSMSRecipients" runat="server" Text="Recipients" /> <br /> <asp:LinkButton ID="lbSendTestSMS" runat="server" OnClick="SendTestSMS" Text="Send Test SMS" /> </td> <td> <asp:TextBox ID="txtSMSRecipients" runat="server" MaxLength="100" style="width:98%;font-family:Verdana;font-size:small;" TextMode="MultiLine" /> <br /> <asp:Image ID="imgHint" runat="server" ImageUrl="~/Images/QuestionMark.jpg" ToolTip="Recipient Format: ATT: PhoneNumber@txt.att.net Verizon: PhoneNumber@vtext.com Sprint: PhoneNumber@messaging.sprintpcs.com T-Mobile: PhoneNumber@tmomail.net" /> </td> </tr> <tr> <td> <asp:Label ID="lblSMSMessage" runat="server" Text="Text Message" /> </td> <td> <asp:TextBox ID="txtSMSMessage" runat="server" MaxLength="1000" style="width:98%;font-family:Verdana;font-size:small;" TextMode="MultiLine" /> <br /> <label ID="lblCharacterCount"> Character count: <%= String.IsNullOrEmpty(txtSMSMessage.Text) ? "0" : txtSMSMessage.Text.Length.ToString()%> </label> </td> </tr> </table> </telerik:RadPageView> </telerik:RadMultiPage> </asp:Panel> </td> </tr> </table> <asp:HiddenField ID="hfRuleID" runat="server" Value='<%# DataBinder.Eval(Model,"RuleKey") %>' /> <asp:HiddenField ID="hfInternalAlertID" runat="server" Value='<%# DataBinder.Eval(Model,"InternalAlertID") %>' /> <asp:HiddenField ID="hfStatus" runat="server" Value='<%# DataBinder.Eval(Model,"Status") %>' /> <asp:HiddenField ID="hfOwnerName" runat="server" Value='<%# DataBinder.Eval(Model,"OwnerName") %>' /><%-- </ContentTemplate> </asp:UpdatePanel>--%> <table border="0px" style="width:100%;font-family:Verdana;font-size:small;"> <tr> <td align="right" style="width:50%;"> <asp:Button CommandName='<%# Convert.ToInt32(DataBinder.Eval(Model,"InternalAlertID")) > 0 ? "Update" : "PerformInsert" %>' Text='<%# Convert.ToInt32(DataBinder.Eval(Model,"InternalAlertID")) > 0 ? "Update" : "Create" %>' ID="btnCreateUpdate" style="font-family:Verdana;font-size:small;" runat="server" OnClick="btnCreateUpdate_onclick"></asp:Button> </td> <td> <%--<asp:Button ID="btnCancel" CommandName="Cancel" Text="Cancel" runat="server" style="font-family:Verdana;font-size:small;width:65px;height:22px;" class="cancel" CausesValidation="false"></asp:Button>--%> <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel" OnClick="btnCancel_Click"> </asp:Button> </td> </tr> </table></asp:Panel>Thanks for the code.
RadAjaxManager behind the scene wraps the controls ajaxified through it in UpdatePanels and therefore, there should be no difference if you are using UpdatePanels or RadAjaxManager. Furthermore, going through your code I could not spot anything that could indicate a potential problem with the validation (btw., the client-side validation code is missing). I'd ask you to isolate the problem in a small sample with a simple grid in it and jQuery validation for the edit form user control, ajaxify the grid, add the validation code and send us the project through a formal support ticket. This will speed up the resolution of the issue and also guarantee you a 24-hour response time.
Thanks in advance for that.
Greetings, Tsvetoslav
the Telerik team
I was working on trying to resolve the issue and I think I may have found the cause.
When I try to implement the custom pop-up edit form based on this example, I see that the following code
<asp:Button ID="btnInsert" Text="Insert" runat="server" CommandName="PerformInsert"Visible='<%# DataItem is Telerik.Web.UI.GridInsertionObject %>'></asp:Button>gets translated to
<input type="button" name="RadGrid1$ctl00$ctl02$ctl03$EditFormControl$btnInsert" value="Insert" onclick="javascript:__doPostBack('RadGrid1$ctl00$ctl02$ctl03$EditFormControl$btnInsert','')" id="RadGrid1_ctl00_ctl02_ctl03_EditFormControl_btnInsert">instead of <input type="submit"...
I believe the validation plugin looks for [inputs, button] of type Submit to hook up the form submit to trigger validation. Now as the Insert/Update buttons were rendered as type="button", it was not getting properly hooked to validation plugin and hence the auto validation on submit was broken. I went back to the "UpdatePanel" implementation to validate that the buttons were rendered as submit type and that was the case. Tried the attribute UseSubmitBehavior="true" and it was ignored while rendering.
Am I missing something here? As a workaround I'm triggering the validation manually.
Regards.
Thanks for sharing that observation. However, on the online example you can notice that the buttons do get rendered as of type submit. So, it must be something else that is tampering with their rendering, not just the RadAjaxManager control. I'd ask you to open up a formal support ticket and send us a runnable sample where the problem is replicated. I shall debug it and get back toyou with further information. The ticket will also guarantee you a 24-hour resonse time and the sample a much faster resolution of the issue.
Looking forward to your feedback.
Regards,
Tsvetoslav
the Telerik team