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

Batch Editing, Item Template, Validation Summary not displaying

0 Answers 102 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Jason
Top achievements
Rank 1
Jason asked on 25 Aug 2017, 11:31 AM

I Have a radgrid using batch edit mode, with insert & edit item templates.

Grid is populated using OnNeedDataSource.

I also have RadAjaxManager.

There are RequiredFieldValidators in place to prevent fields being left empty. This shows an asterix next to each field that fails validation.

ValidationSettings have been configured to set ValidationGroup.

However, I am unable to get validation summary to display the 'ErrorMessage' to the user if a field is left empty and 'save' button clicked.

I am using TelerikĀ® UI for ASP.NET AJAX, v4.0.30319.

Below is a very simple example to demonstrate the issue.

Is there some configuration I have missed either in the grid or in RadAjaxManager?

Thanks

Jason

 

aspx

001.<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
002. 
003.<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
004. 
005.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
006. 
007.<html xmlns="http://www.w3.org/1999/xhtml">
008.<head runat="server">
009.    <title></title>
010.    <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" />
011.</head>
012.<body>
013.    <form id="form1" runat="server">
014.    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
015.        <Scripts>
016.            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
017.            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
018.            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
019.        </Scripts>
020.    </telerik:RadScriptManager>
021. 
022.    <script type="text/javascript">
023.    </script>
024.     
025.        <p>
026.            Click on a cell/row to place it in edit mode.
027.        </p>
028.        <p>
029.            Edit TextData, leave blank > Save: Validation summary should appear?
030.        </p>
031. 
032.    <telerik:RadGrid ID="radGrid" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" PageSize="12"
033.                        OnNeedDataSource="radGrid_NeedDataSource"
034.                        OnItemDataBound="radGrid_ItemDataBound"
035.                        OnPreRender="radGrid_PreRender"
036.                        OnBatchEditCommand="radGrid_BatchEditCommand"
037.                        OnItemCreated="radGrid_ItemCreated"
038.                        AllowAutomaticUpdates="True"
039.                        AllowAutomaticInserts="True"
040.                        ValidationSettings-EnableValidation="true">
041.        <MasterTableView DataKeyNames="Id" CommandItemDisplay="Top" EditMode="Batch" AutoGenerateColumns="False">
042.            <BatchEditingSettings EditType="Row"/>
043.            <SortExpressions>
044.                <telerik:GridSortExpression FieldName="Id" SortOrder="Ascending"/>
045.            </SortExpressions>
046.            <Columns>
047.                <telerik:GridTemplateColumn UniqueName="Id" SortExpression="Id" HeaderText="ID">
048.                    <ItemTemplate>
049.                        <telerik:RadLabel runat="server" ID="Id" Text='<%# Eval("Id") %>'/>
050.                    </ItemTemplate>
051.                    <InsertItemTemplate>
052.                        <telerik:RadTextBox runat="server" ID="Id" Text='<%# Eval("Id") %>'/>
053.                        <asp:RequiredFieldValidator runat="server" ID="ValidateId" ControlToValidate="Id" EnableClientScript="True" ForeColor="Red" ErrorMessage="ID is required" Text="*" Display="Static"/>
054.                    </InsertItemTemplate>
055.                    <EditItemTemplate>
056.                        <telerik:RadLabel runat="server" ID="Id" Text='<%# Eval("Id") %>'/>
057.                    </EditItemTemplate>
058.                </telerik:GridTemplateColumn>
059. 
060.                <telerik:GridTemplateColumn UniqueName="TextData" SortExpression="TextData" HeaderText="Description">
061.                    <ItemTemplate>
062.                        <telerik:RadLabel runat="server" ID="TextData" Text='<%# Eval("TextData") %>'/>
063.                    </ItemTemplate>
064.                    <InsertItemTemplate>
065.                        <telerik:RadTextBox runat="server" ID="TextData" Text='<%# Eval("TextData") %>'/>
066.                        <asp:RequiredFieldValidator runat="server" ControlToValidate="TextData" EnableClientScript="True" ForeColor="Red" ErrorMessage="Text data is required" Text="*" Display="Static" ValidationGroup="RadGridValidation"/>
067.                    </InsertItemTemplate>
068.                    <EditItemTemplate>
069.                        <telerik:RadTextBox runat="server" ID="TextData" Text='<%# Eval("TextData") %>'/>
070.                        <asp:RequiredFieldValidator runat="server" ControlToValidate="TextData" EnableClientScript="True" ForeColor="Red" ErrorMessage="Text data is required" Text="*" Display="Static" ValidationGroup="RadGridValidation"/>
071.                    </EditItemTemplate>
072.                </telerik:GridTemplateColumn>
073. 
074.                <telerik:GridTemplateColumn UniqueName="NumericData" SortExpression="NumericData" HeaderText="Selling Rate">
075.                    <ItemTemplate>
076.                        <telerik:RadLabel runat="server" ID="NumericData" Text='<%# Eval("NumericData") %>'/>
077.                    </ItemTemplate>
078.                    <InsertItemTemplate>
079.                        <telerik:RadNumericTextBox runat="server" ID="NumericData" Type="Number" Value='<%# Eval("NumericData") %>' MinValue="0" > 
080.                            <NumberFormat AllowRounding="false" KeepNotRoundedValue="false" DecimalDigits="5"/>
081.                        </telerik:RadNumericTextBox>
082.                        <asp:RequiredFieldValidator runat="server" ControlToValidate="NumericData" EnableClientScript="True" ForeColor="Red" ErrorMessage="Numeric data is required" Text="*" Display="Static" ValidationGroup="RadGridValidation"/>
083.                    </InsertItemTemplate>
084.                    <EditItemTemplate>
085.                        <telerik:RadNumericTextBox runat="server" ID="NumericData" Type="Number" Value='<%# Eval("NumericData") %>' MinValue="0" > 
086.                            <NumberFormat AllowRounding="false" KeepNotRoundedValue="false" DecimalDigits="5"/>
087.                        </telerik:RadNumericTextBox>
088.                        <asp:RequiredFieldValidator runat="server" ControlToValidate="NumericData" EnableClientScript="True" ForeColor="Red" ErrorMessage="Numeric Data is required" Text="*" Display="Static" ValidationGroup="RadGridValidation"/>
089.                    </EditItemTemplate>
090.                </telerik:GridTemplateColumn>
091.            </Columns>
092.        </MasterTableView>
093.        <GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings>
094. 
095.        <ValidationSettings EnableValidation="true" CommandsToValidate="PerformInsert,Update" ValidationGroup="RadGridValidation"></ValidationSettings>
096.        <ClientSettings AllowKeyboardNavigation="true"></ClientSettings>
097.    </telerik:RadGrid>
098. 
099.    <%-- Validation Summary --%>
100.    <asp:ValidationSummary id="ValidationSummary" runat="server" ShowMessageBox="False" ShowSummary="True" DisplayMode="BulletList" HeaderText="Unable to commit changes:" ValidationGroup="RadGridValidation"/>
101. 
102.    <telerik:RadAjaxManager ID="RadAjaxManager" runat="server">
103.        <AjaxSettings>
104.            <telerik:AjaxSetting AjaxControlID="radGrid">
105.                <UpdatedControls>
106.                    <telerik:AjaxUpdatedControl ControlID="radGrid" LoadingPanelID="RadAjaxLoadingPanel"/>
107.                </UpdatedControls>
108.            </telerik:AjaxSetting>
109. 
110.            <telerik:AjaxSetting AjaxControlID="ValidationSummary">
111.                <UpdatedControls>
112.                    <telerik:AjaxUpdatedControl ControlID="ValidationSummary" />
113.                </UpdatedControls>
114.            </telerik:AjaxSetting>
115. 
116.        </AjaxSettings>
117.    </telerik:RadAjaxManager>
118.    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel" runat="server" Modal="True" InitialDelayTime="250"/>
119.    </form>
120.</body>
121.</html>

 

c#

using System;
using System.Data;
using Telerik.Web.UI;
using System.Collections;
 
public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    protected void radGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        DataTable table = new System.Data.DataTable();
        table.Columns.Add("Id", typeof(int));
        table.Columns.Add("TextData", typeof(String));
        table.Columns.Add("NumericData", typeof(Double));
        table.Rows.Add(1, "A string", "10");
        table.Rows.Add(2, "A string", "20");
        table.Rows.Add(3, "A string", "30");
        table.Rows.Add(4, "A string", "40");
        table.Rows.Add(5, "A string", "50");
 
        radGrid.DataSource = table;
        radGrid.VirtualItemCount = table.Rows.Count;
    }
 
    protected void radGrid_PreRender(object sender, EventArgs e)
    {
 
    }
 
    protected void radGrid_ItemCreated(object sender, GridItemEventArgs e)
    {
 
    }
 
    protected void radGrid_ItemDataBound(object sender, GridItemEventArgs e)
    {
 
    }
 
    protected void radGrid_BatchEditCommand(object sender, GridBatchEditingEventArgs e)
    {
        // update / insert commands from grid
        foreach (GridBatchEditingCommand command in e.Commands)
        {
            if ((command.Type == GridBatchEditingCommandType.Update))
            {
                Hashtable newValues = command.NewValues;
 
                String Id = newValues["Id"].ToString();
 
                // Update record
            }
 
            if ((command.Type == GridBatchEditingCommandType.Insert))
            {
                Hashtable newValues = command.NewValues;
 
                String Id = newValues["Id"].ToString();
 
                // Insert record
            }
        }
    }
}

 

 

No answers yet. Maybe you can help?

Tags
Grid
Asked by
Jason
Top achievements
Rank 1
Share this question
or