diff --git a/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/frozen.cs b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/frozen.cs new file mode 100644 index 0000000000..d7ac3aa3f2 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/frozen.cs @@ -0,0 +1,6 @@ +public IActionResult DefaultExporting() +{ + var order = OrdersDetails.GetAllRecords(); + ViewBag.dataSource = order; + return View(); +} diff --git a/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/razor b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/razor new file mode 100644 index 0000000000..fe97eb361c --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/razor @@ -0,0 +1,31 @@ +@Html.EJS().Grid("Grid").DataSource((IEnumerable)ViewBag.dataSource).FrozenColumns(2).Columns(col => +{ + col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("OrderDate").HeaderText("Order Date").Width("130").Format("yMd").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Edit(new { create = "createDatePicker", read = "readDatePicker", destroy = "destroyDatePicker", write = "writeDatePicker" }).Add(); + col.Field("CustomerID").HeaderText("Customer ID").Width("130").Add(); + col.Field("ShipCity").HeaderText("Ship City").Width("120").Add(); +}).AllowPaging().PageSettings(page=>page.PageCount(5)).EditSettings(edit => { edit.AllowAdding(true).AllowEditing(true).AllowDeleting(true); }).Toolbar(new List() { "Add", "Edit", "Delete", "Update", "Cancel" }).Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/tagHelper new file mode 100644 index 0000000000..1b0850fa11 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/columns/frozen-datepicker/tagHelper @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/custom-headers.cs b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/custom-headers.cs new file mode 100644 index 0000000000..3a3300bf82 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/custom-headers.cs @@ -0,0 +1,4 @@ +public IActionResult Index() +{ + return View(); +} \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/razor b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/razor new file mode 100644 index 0000000000..a5f095174c --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/razor @@ -0,0 +1,26 @@ +@Html.EJS().Grid("CustomAdaptor").Columns(col => +{ + col.Field("OrderID").HeaderText("Order ID").Width("100").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("CustomerID").HeaderText("Customer ID").Width("160").Add(); + col.Field("EmployeeID").HeaderText("Employee ID").Width("100").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("Freight").HeaderText("Freight").Width("150").Format("C2").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("ShipCountry").HeaderText("Ship Country").Width("150").Add(); + +}).AllowPaging().Created("created").Render() + + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/tagHelper new file mode 100644 index 0000000000..f6ddad1b76 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/data-binding/custom-headers/tagHelper @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/excel-export.cs b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/excel-export.cs new file mode 100644 index 0000000000..a07b5bf2c8 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/excel-export.cs @@ -0,0 +1,6 @@ +public IActionResult Index() +{ + ViewBag.dataSource = OrdersDetails.GetAllRecords();; + ViewBag.employeeDataSource = EmployeeView.GetAllRecords(); + return View(); +} \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/razor b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/razor new file mode 100644 index 0000000000..96cf378e03 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/razor @@ -0,0 +1,33 @@ +@{ + var ChildGrid = new Syncfusion.EJ2.Grids.Grid() { DataSource = (IEnumerable)ViewBag.dataSource, + QueryString = "EmployeeID", + Columns = new List + { + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderID", HeaderText="Order ID", Width="120",TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="Freight", HeaderText="Freight", Width="120", Format="C2", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderDate", HeaderText="Order Date", Width="150", Format="dd-MM-yyyy", Type="date" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="ShipCity", HeaderText="Ship City", Width="120" }, + } + }; + } + @Html.EJS().Grid("Grid").DataSource((IEnumerable)ViewBag.employeeDataSource).Height("348px").AllowExcelExport().Columns(col => + { + col.Field("EmployeeID").HeaderText("Employee ID").Width("125").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("FirstName").HeaderText("First Name").Width("125").Add(); + col.Field("LastName").HeaderText("Last Name").Width("180").Add(); + col.Field("City").HeaderText("City").Width("135").Add(); + }).Toolbar(new List() { "ExcelExport"}).ChildGrid(ChildGrid).ToolbarClick("toolbarClick").ExportDetailDataBound("exportDetailDataBound").Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/tagHelper new file mode 100644 index 0000000000..e1aaefc2f6 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/excel-export/excelexport-format/tagHelper @@ -0,0 +1,33 @@ +@{ var ChildGrid = new Syncfusion.EJ2.Grids.Grid() { + DataSource = (IEnumerable)ViewBag.DataSource, + QueryString = "EmployeeID", + Columns = new List { + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderID", HeaderText="Order ID", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right, Width="120" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="Freight", HeaderText="Freight", Width="120", Format="C2", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderDate", HeaderText="OrderDate", Width="130", Format="dd-MM-yyyy", Type="date" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="ShipCity", HeaderText="Ship City", Width="120" }, + } +}; +} + + + + + + + + + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/localization.cs b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/localization.cs new file mode 100644 index 0000000000..c728c26fcc --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/localization.cs @@ -0,0 +1,6 @@ +public IActionResult Index() +{ + var orders = OrderDetails.GetAllRecords(); + ViewBag.datasource = orders; + return View(); +} \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/razor b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/razor new file mode 100644 index 0000000000..bcd949540c --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/razor @@ -0,0 +1,169 @@ +@Html.EJS().Grid("deGrid").DataSource((IEnumerable)ViewBag.datasource).Columns(col =>{ + col.Field("OrderID").HeaderText("Order ID").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Width("120").Add(); + col.Field("CustomerID").HeaderText("Customer Name").Width("150").Add(); + col.Field("ShipName").HeaderText("Ship Name").Width("150").Add(); + col.Field("ShipCountry").HeaderText("Ship Country").Width("150").Add(); +}).AllowPaging().Locale("fr-FR").Render(); +@Html.EJS().Grid("enGrid").DataSource((IEnumerable)ViewBag.datasource).Columns(col =>{ + col.Field("OrderID").HeaderText("Order ID").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Width("120").Add(); + col.Field("CustomerID").HeaderText("Customer Name").Width("150").Add(); + col.Field("ShipName").HeaderText("Ship Name").Width("150").Add(); + col.Field("ShipCountry").HeaderText("Ship Country").Width("150").Add(); +}).AllowPaging().Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/tagHelper new file mode 100644 index 0000000000..bd06f1fbf7 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/globalization/two-localization/tagHelper @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/format.cs b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/format.cs new file mode 100644 index 0000000000..a2f8c3e6a1 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/format.cs @@ -0,0 +1,6 @@ +public IActionResult Index() +{ + ViewBag.DataSource = OrdersDetails.GetAllRecords();; + ViewBag.EmpDataSource = EmployeeView.GetAllRecords(); + return View(); +} \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/razor b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/razor new file mode 100644 index 0000000000..156dcfee73 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/razor @@ -0,0 +1,33 @@ +@{ + var ChildGrid = new Syncfusion.EJ2.Grids.Grid() { DataSource = (IEnumerable)ViewBag.DataSource, + QueryString = "EmployeeID", + Columns = new List + { + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderID", HeaderText="Order ID", Width="90", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="CustomerID", HeaderText="Customer ID", Width="120" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderDate", HeaderText="Order Date", Width="150", Format="dd-MM-yyyy", Type="date" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="ShipCity", HeaderText="Ship City", Width="110" }, + } + }; +} +@Html.EJS().Grid("Grid").DataSource((IEnumerable)ViewBag.EmpDataSource).AllowPdfExport().Columns(col => +{ + col.Field("EmployeeID").HeaderText("Employee ID").Width("90").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("FirstName").HeaderText("Name").Width("100").Add(); + col.Field("LastName").HeaderText("Last Name").Width("100").Add(); + col.Field("City").HeaderText("City").Width("100").Add(); +}).Toolbar(new List() { "PdfExport"}).ChildGrid(ChildGrid).ToolbarClick("toolbarClick").ExportDetailDataBound("exportDetailDataBound").Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/tagHelper new file mode 100644 index 0000000000..c12a5f68e4 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/pdf-export/format/tagHelper @@ -0,0 +1,33 @@ +@{ + var ChildGrid = new Syncfusion.EJ2.Grids.Grid(){ + DataSource = (IEnumerable)ViewBag.DataSource, + QueryString = "EmployeeID", + Columns = new List { + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderID", HeaderText="Order ID", Width="90", TextAlign=Syncfusion.EJ2.Grids.TextAlign.Right }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="CustomerID", HeaderText="CustomerID", Width="100" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="OrderDate", HeaderText="OrderDate", Width="100", Format="dd-MM-yyyy", Type="date" }, + new Syncfusion.EJ2.Grids.GridColumn(){ Field="ShipName", HeaderText="Ship Name", Width="110" }, + }}; +} + + + + + + + + + diff --git a/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/razor b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/razor new file mode 100644 index 0000000000..883354e362 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/razor @@ -0,0 +1,27 @@ +
+ @Html.EJS().Button("getSearchedRecords").Content("Get Searched Records").Render() +
+@Html.EJS().Grid("grid").DataSource((IEnumerable)ViewBag.datasource).Height("350px").Columns(col => +{ + col.Field("OrderID").HeaderText("Order ID").Width("160").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).IsPrimaryKey(true).Add(); + col.Field("CustomerID").HeaderText("Customer ID").Width("170").Add(); + col.Field("Freight").HeaderText("Freight").Width("170").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("C2").Add(); + col.Field("OrderDate").HeaderText("Order Date").Width("170").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add(); +})..AllowPaging().PageSettings(page => { page.PageCount(5);}).Toolbar(new List() { "Search" }).ActionComplete("actionComplete").Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/retrieve-records.cs b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/retrieve-records.cs new file mode 100644 index 0000000000..6a28c3fddd --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/retrieve-records.cs @@ -0,0 +1,6 @@ +public IActionResult Index() + { + var orders = OrdersDetails.GetAllRecords(); + ViewBag.datasource = orders; + return View(); + } diff --git a/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/tagHelper new file mode 100644 index 0000000000..7fa935d64f --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/search/retrieve-records/tagHelper @@ -0,0 +1,29 @@ +
+ +
+ + + + + + + + + + diff --git a/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/observable.cs b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/observable.cs new file mode 100644 index 0000000000..90ebfcc865 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/observable.cs @@ -0,0 +1,5 @@ +public IActionResult Index() +{ + ViewBag.dataSource = OrderDetails.GetAllRecords();; + return View(); +} \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/razor b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/razor new file mode 100644 index 0000000000..afd5109b9d --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/razor @@ -0,0 +1,52 @@ +@{ + List filterColumns = new List(); + filterColumns.Add(new { field = "CustomerID", matchCase = false, @operator = "startswith", predicate = "and", value = "A" }); +} +@{ + List sortOptions = new List(); + sortOptions.Add(new { field = "OrderID", direction = "Descending" }); +} +@Html.EJS().Grid("grid").AllowPaging(true).AllowFiltering(true).AllowSorting(true).AllowGrouping(true).EnablePersistence(true).Columns(col => +{ + col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("CustomerID").HeaderText("Customer Name").Width("170").Add(); + col.Field("ShipCity").HeaderText("ShipCity").Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add(); + col.Field("ShipName").HeaderText("Ship Name").Width("170").Add(); +}).Created("created").DataStateChange("dataStateChange").GroupSettings(group => { group.ShowGroupedColumn(false).Columns(new string[] { "ShipCity" }); }).FilterSettings(filter => filter.Columns(filterColumns)).SortSettings(sort => sort.Columns(sortOptions)).PageSettings(page => page.PageCount(10)).Render() + \ No newline at end of file diff --git a/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/tagHelper b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/tagHelper new file mode 100644 index 0000000000..7d0afa5c97 --- /dev/null +++ b/ej2-asp-core-mvc/code-snippet/grid/state-persist/observable/tagHelper @@ -0,0 +1,57 @@ +@{ + List filterColumns = new List(); + filterColumns.Add(new { field = "CustomerID", matchCase = false, @operator = "startswith", predicate = "and", value = "A" }); +} +@{ + List sortOptions = new List(); + sortOptions.Add(new { field = "OrderID", direction = "Decending" }); + } + + + + + + + + + + + + + \ No newline at end of file diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/columns/frozen-column.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/columns/frozen-column.md index 3997a6273d..1b61dadd2c 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/columns/frozen-column.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/columns/frozen-column.md @@ -122,6 +122,26 @@ The following example demonstrates how to change the default frozen line color u ![Change default frozen line color](../images/column-chooser/frozon-color.png) +## Render DatePicker in frozen columns in Grid + +The Syncfusion Grid allows rendering a [DatePicker](https://ej2.syncfusion.com/aspnetmvc/documentation/datepicker/getting-started) inside frozen columns during editing. This is achieved using the `Edit` property, where a custom editor (DatePicker) is assigned to the specific column. + +To integrate a `DatePicker` in a frozen column, configure the column’s `Edit` property with custom `create`, `write`, `read`, and `destroy` methods. These methods ensure that the `DatePicker` initializes, retrieves, and destroys correctly within the frozen column. + +The following example demonstrates how to render the `DatePicker` in the **OrderDate** column while keeping it frozen. Here the datepicker object is appended to the corresponding input element in the editing row. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/columns/frozen-datepicker/razor %} +{% endhighlight %} + +{% highlight c# tabtitle="Frozen.cs" %} +{% include code-snippet/grid/columns/frozen-datepicker/frozen.cs %} +{% endhighlight %} +{% endtabs %} + +![DatePicker in Frozen columns](../images/columns/frozen-datepicker.jpg) + ## Deprecated methods Previous | Current | Explanation diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/data-binding/data-binding.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/data-binding/data-binding.md index ee251228b2..ec4d91a742 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/data-binding/data-binding.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/data-binding/data-binding.md @@ -257,6 +257,27 @@ The following example demonstrates how to prevent local time zone conversion for ![Prevent to convert local time zone format](../images/databinding/local-time.gif) +## How to set custom headers using a custom adaptor in Syncfusion ASP.NET MVC Grid + +Custom headers in HTTP requests are used to send additional information such as authentication tokens, API keys, or metadata required by the server. These headers improve security and enable better control over data communication. In the Syncfusion ASP.NET MVC Grid, custom headers can be added when making API requests, ensuring that each request carries the necessary information for server-side validation and processing. + +This method is particularly useful when integrating the Grid with authenticated APIs, where requests must include authorization tokens or other security credentials to ensure secure access. + +To achieve this, the `WebApiAdaptor` can be extended to create the custom adaptor. The `beforeSend` method in the custom adaptor allows modifying request headers before sending them to the server. This ensures that every request from the Grid includes the required headers. + +The following example demonstrates how to set custom headers using the custom adaptor in Syncfusion ASP.NET MVC Grid. + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/data-binding/custom-headers/razor %} +{% endhighlight %} +{% highlight c# tabtitle="custom-headers.cs" %} +{% include code-snippet/grid/data-binding/custom-headers/custom-headers.cs %} +{% endhighlight %} +{% endtabs %} + +![Custom headers using custom adaptor](../images/custom-headers.png) + ## Troubleshoot: Syncfusion ASP.NET MVC Grid render rows without data In ASP.NET MVC, by default the JSON results are returned in camelCase format. So Grid field names are also changed in camelCase. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/excel-export/excel-exporting.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/excel-export/excel-exporting.md index 30e163d57c..bed84080d2 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/excel-export/excel-exporting.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/excel-export/excel-exporting.md @@ -230,6 +230,22 @@ The following example demonstrates how to export hierarchical grid to Excel docu ![Exporting hierarchy grid](../images/excel-exporting/excelexporting-heirachy.png) +### Format the child Grid columns before exporting + +The Syncfusion Grid allows customization of the child Grid's Excel export options, enabling precise control over data formatting before export. This functionality is achieved using the [ExportDetailDataBound](https://help.syncfusion.com/cr/aspnetMVC-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_ExportDetailDataBound) event, which is triggered for each child Grid during the export process. This event provides access to the child Grid instance, allowing modifications to its column formatting before generating the Excel document. + +In the following example, the `ExportDetailDataBound` event is used to modify the **OrderDate** column of the child Grid. By setting the column's [Format](https://help.syncfusion.com/cr/aspnetMVC-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Format) property, the date values are formatted as `dd/MM/yyyy` when exported to Excel document. + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/excel-export/excelexport-format/razor %} +{% endhighlight %} + +{% highlight c# tabtitle="excel-export.cs" %} +{% include code-snippet/grid/excel-export/excelexport-format/excel-export.cs %} +{% endhighlight %} +{% endtabs %} + ### Limitations * Microsoft Excel permits up to seven nested levels in outlines. So that in the grid we can able to provide only up to seven nested levels and if it exceeds more than seven levels then the document will be exported without outline option. Please refer the [Microsoft Limitation](https://learn.microsoft.com/en-us/sql/reporting-services/report-builder/exporting-to-microsoft-excel-report-builder-and-ssrs?view=sql-server-2017#ExcelLimitations). diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/global-local.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/global-local.md index 8d24edf1f6..76d6b65921 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/global-local.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/global-local.md @@ -295,6 +295,24 @@ To switch to the **French** culture and set the currency code as **EUR**, you ca ![Globalization-Switch-Culture](images/globalization/switch-localization.gif) +### Set different Locale text for two Grids in same page + +The Syncfusion Grid allows configuring different [Locale](https://help.syncfusion.com/cr/aspnetmvc-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_Locale) settings for multiple Grids displayed on the same page. By using the **load** function of the **L10n** class, you can customize the text content of the Grid to be displayed in different languages. + +In this setup, each Grid can display text in a different language based on its assigned `Locale`. The `load` function is used to define translations for specific languages, ensuring that each Grid correctly applies the localized text for headers, toolbar items, and action buttons. + +For example, when the first Grid is set to use the **fr-FR** Locale, it applies the French translations loaded via **L10n.load**. The second Grid, set to **en-US**, retains the default English text. This demonstrates how localization can be customized per Grid without affecting other components on the page. + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/globalization/two-localization/razor %} +{% endhighlight %} + +{% highlight c# tabtitle="Localization.cs" %} +{% include code-snippet/grid/globalization/two-localization/localization.cs %} +{% endhighlight %} +{% endtabs %} + ## Internationalization The Internationalization library in the Syncfusion ASP.NET MVC Grid provides a localized display of number, date, and time values in the Grid control based on the preferred language and region. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/pdf-export/pdf-export.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/pdf-export/pdf-export.md index 6a5662fdc8..f24221d0db 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/pdf-export/pdf-export.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/pdf-export/pdf-export.md @@ -224,6 +224,21 @@ The following example demonstrates how to export hierarchical grid to PDF docume ![Export Hierarchy Grid](../images/pdf-export/export-hierarchy-grid.png) +### Format the child Grid columns before exporting + +The Syncfusion Grid allows customization of the child Grid's PDF export options, enabling precise control over data formatting before export. This functionality is achieved using the [ExportDetailDataBound](https://help.syncfusion.com/cr/aspnetMVC-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_ExportDetailDataBound) event, which is triggered for each child Grid during the export process. This event provides access to the child Grid instance, allowing modifications to its column formatting before generating the PDF document. + +In the following example, the `ExportDetailDataBound` event is used to modify the **OrderDate** column of the child Grid. By setting the column's [Format](https://help.syncfusion.com/cr/aspnetMVC-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Format) property, the date values are formatted as `dd/MM/yyyy` when exported to PDF document. + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/pdf-export/format/razor %} +{% endhighlight %} +{% highlight c# tabtitle="Format.cs" %} +{% include code-snippet/grid/pdf-export/format/format.cs %} +{% endhighlight %} +{% endtabs %} + ## Remove header row while exporting When exporting data from the Syncfusion ASP.NET MVC Grid, you have an option to remove the header row from the exported file. This can be useful when you want to export grid data without including the header values in the exported document. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/searching.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/searching.md index 5776a79038..4160758840 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/searching.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/searching.md @@ -254,6 +254,25 @@ The following example demonstrates how to clear the searched records using an ex > You can also clear the searched records by using the clear icon within the search input field. +## Retrieving searched records using a button click + +The Syncfusion Grid allows users to retrieve searched records using an external button. This functionality enables capturing the search text entered in the toolbar and filtering the data accordingly. + +To achieve this, the [ActionComplete](https://help.syncfusion.com/cr/aspnetmvc-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_ActionComplete) event can be used. This event is triggered when a search action is performed, allowing access to the search text. The captured search string can then be used with the `executeQuery` method of the `DataManager` to retrieve the matching records. + +The following example demonstrates how to retrieve searched records using an external button. + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/search/retrieve-records/razor %} +{% endhighlight %} +{% highlight c# tabtitle="retrieve-records.cs" %} +{% include code-snippet/grid/search/retrieve-records/retrieve-records.cs %} +{% endhighlight %} +{% endtabs %} + +![Retrieve searched records](images/search/retrieve-records.png) + ## See also * [How to perform search by using Wildcard and LIKE operator filter](https://ej2.syncfusion.com/aspnetmvc/documentation/grid/filtering/filtering#wildcard-and-like-operator-filter) diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/state-management.md b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/state-management.md index 2371c4be8c..26f33be461 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/state-management.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.MVC/state-management.md @@ -1,6 +1,6 @@ --- layout: post -title: State management in ##Platform_Name## Grid Component +title: State management in Syncfusion ##Platform_Name## Grid Component description: Learn here all about State management in Syncfusion ##Platform_Name## Grid component of Syncfusion Essential JS 2 and more. platform: ej2-asp-core-mvc control: State management @@ -130,6 +130,30 @@ When [EnablePersistence](https://help.syncfusion.com/cr/aspnetmvc-js2/syncfusion {% endhighlight %} {% endtabs %} +## Observables binding with state persistence + +The Syncfusion Grid supports state persistence when using observable binding, ensuring that the Grid retains its state across sessions. This is useful when dealing with real-time data updates or asynchronous data sources while preserving user interactions such as sorting, filtering, paging, and grouping. + +To implement state persistence with observables, the initial query state must be manually handled. This involves: + + * Retrieving the initial query using the Grid’s `getDataModule` method with `generateQuery`. + + * Obtaining the state from the query via `getStateEventArgument` method. + + * Sending the retrieved state to the service to fetch data accordingly. + +Except for the initial render, state persistence ensures that manually performed actions are retained by storing the state in the browser’s `localStorage`, allowing it to persist across page reloads. The following example demonstrates how to use the [Created](https://help.syncfusion.com/cr/aspnetmvc-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_Created) event to send the persisted state to the service at initial render: + +{% tabs %} +{% highlight razor tabtitle="CSHTML" %} +{% include code-snippet/grid/state-persist/observable/razor %} +{% endhighlight %} + +{% highlight c# tabtitle="observable.cs" %} +{% include code-snippet/grid/state-persist/observable/observable.cs %} +{% endhighlight %} +{% endtabs %} + ## Get or set local storage value If the [EnablePersistence](https://help.syncfusion.com/cr/aspnetmvc-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_EnablePersistence) property is set to **true**, the Grid property value is saved in the **window.localStorage** for reference. You can get or set the localStorage value by using the **getItem** and **setItem** methods in **window.localStorage**. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/columns/frozen-column.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/columns/frozen-column.md index 953a487fcb..3464dfef50 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/columns/frozen-column.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/columns/frozen-column.md @@ -122,6 +122,26 @@ The following example demonstrates how to change the default frozen line color u ![Change default frozen line color](../images/column-chooser/frozon-color.png) +## Render DatePicker in frozen columns in Grid + +The Syncfusion Grid allows rendering a [DatePicker](https://ej2.syncfusion.com/aspnetcore/documentation/datepicker/getting-started) inside frozen columns during editing. This is achieved using the `edit` property, where a custom editor (DatePicker) is assigned to the specific column. + +To integrate a `DatePicker` in a frozen column, configure the column’s `edit` property with custom `create`, `write`, `read`, and `destroy` methods. These methods ensure that the `DatePicker` initializes, retrieves, and destroys correctly within the frozen column. + +The following example demonstrates how to render the `DatePicker` in the **OrderDate** column while keeping it frozen. Here the datepicker object is appended to the corresponding input element in the editing row. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/columns/frozen-datepicker/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="Frozen.cs" %} +{% include code-snippet/grid/columns/frozen-datepicker/frozen.cs %} +{% endhighlight %} +{% endtabs %} + +![DatePicker in Frozen columns](../images/columns/frozen-datepicker.jpg) + ## Deprecated methods Previous | Current | Explanation diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/data-binding/data-binding.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/data-binding/data-binding.md index d091e21d51..dd4d3a3e90 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/data-binding/data-binding.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/data-binding/data-binding.md @@ -257,6 +257,27 @@ The following example demonstrates how to prevent local time zone conversion for ![Prevent to convert local time zone format](../images/databinding/local-time.gif) +## How to set custom headers using a custom adaptor in Syncfusion ASP.NET Core Grid + +Custom headers in HTTP requests are used to send additional information such as authentication tokens, API keys, or metadata required by the server. These headers improve security and enable better control over data communication. In the Syncfusion ASP.NET Core Grid, custom headers can be added when making API requests, ensuring that each request carries the necessary information for server-side validation and processing. + +This method is particularly useful when integrating the Grid with authenticated APIs, where requests must include authorization tokens or other security credentials to ensure secure access. + +To achieve this, the `WebApiAdaptor` can be extended to create the custom adaptor. The `beforeSend` method in the custom adaptor allows modifying request headers before sending them to the server. This ensures that every request from the Grid includes the required headers. + +The following example demonstrates how to set custom headers using the custom adaptor in Syncfusion ASP.NET Core Grid. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/data-binding/custom-headers/tagHelper %} +{% endhighlight %} +{% highlight c# tabtitle="custom-headers.cs" %} +{% include code-snippet/grid/data-binding/custom-headers/custom-headers.cs %} +{% endhighlight %} +{% endtabs %} + +![Custom headers using custom adaptor](../images/custom-headers.png) + ## Troubleshoot: Syncfusion ASP.NET Core Grid render rows without data In ASP.NET Core, by default the JSON results are returned in camelCase format. So Grid field names are also changed in camelCase. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/excel-export/excel-exporting.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/excel-export/excel-exporting.md index 039f8f5085..6953f74fca 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/excel-export/excel-exporting.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/excel-export/excel-exporting.md @@ -230,6 +230,22 @@ The following example demonstrates how to export hierarchical grid to Excel docu ![Exporting hierarchy grid](../images/excel-exporting/excelexporting-heirachy.png) +### Format the child Grid columns before exporting + +The Syncfusion Grid allows customization of the child Grid's Excel export options, enabling precise control over data formatting before export. This functionality is achieved using the [exportDetailDataBound](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_ExportDetailDataBound) event, which is triggered for each child Grid during the export process. This event provides access to the child Grid instance, allowing modifications to its column formatting before generating the Excel document. + +In the following example, the `exportDetailDataBound` event is used to modify the **OrderDate** column of the child Grid. By setting the column's [format](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Format) property, the date values are formatted as `dd/MM/yyyy` when exported to Excel document. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/excel-export/excelexport-format/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="excel-export.cs" %} +{% include code-snippet/grid/excel-export/excelexport-format/excel-export.cs %} +{% endhighlight %} +{% endtabs %} + ### Limitations * Microsoft Excel permits up to seven nested levels in outlines. So that in the grid we can able to provide only up to seven nested levels and if it exceeds more than seven levels then the document will be exported without outline option. Please refer the [Microsoft Limitation](https://learn.microsoft.com/en-us/sql/reporting-services/report-builder/exporting-to-microsoft-excel-report-builder-and-ssrs?view=sql-server-2017#ExcelLimitations). diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/global-local.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/global-local.md index 552cb5a5d2..93297faef9 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/global-local.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/global-local.md @@ -295,6 +295,24 @@ To switch to the **French** culture and set the currency code as **EUR**, you ca ![Globalization-Switch-Culture](images/globalization/switch-localization.gif) +### Set different Locale text for two Grids in same page + +The Syncfusion Grid allows configuring different [Locale](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_Locale) settings for multiple Grids displayed on the same page. By using the **load** function of the **L10n** class, you can customize the text content of the Grid to be displayed in different languages. + +In this setup, each Grid can display text in a different language based on its assigned `Locale`. The `load` function is used to define translations for specific languages, ensuring that each Grid correctly applies the localized text for headers, toolbar items, and action buttons. + +For example, when the first Grid is set to use the **fr-FR** Locale, it applies the French translations loaded via **L10n.load**. The second Grid, set to **en-US**, retains the default English text. This demonstrates how localization can be customized per Grid without affecting other components on the page. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/globalization/two-localization/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="Localization.cs" %} +{% include code-snippet/grid/globalization/two-localization/localization.cs %} +{% endhighlight %} +{% endtabs %} + ## Internationalization The Internationalization library in the Syncfusion ASP.NET Core Grid provides a localized display of number, date, and time values in the Grid control based on the preferred language and region. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/pdf-export/pdf-export.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/pdf-export/pdf-export.md index 754d9559d0..d177fa6fc9 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/pdf-export/pdf-export.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/pdf-export/pdf-export.md @@ -224,6 +224,22 @@ The following example demonstrates how to export hierarchical grid to PDF docume ![Export Hierarchy Grid](../images/pdf-export/export-hierarchy-grid.png) +### Format the child Grid columns before exporting + +The Syncfusion Grid allows customization of the child Grid's PDF export options, enabling precise control over data formatting before export. This functionality is achieved using the [exportDetailDataBound](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_ExportDetailDataBound) event, which is triggered for each child Grid during the export process. This event provides access to the child Grid instance, allowing modifications to its column formatting before generating the PDF document. + +In the following example, the `exportDetailDataBound` event is used to modify the **OrderDate** column of the child Grid. By setting the column's [format](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Grids.GridColumn.html#Syncfusion_EJ2_Grids_GridColumn_Format) property, the date values are formatted as `dd/MM/yyyy` when exported to PDF document. + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/pdf-export/format/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="Format.cs" %} +{% include code-snippet/grid/pdf-export/format/format.cs %} +{% endhighlight %} +{% endtabs %} + ## Remove header row while exporting When exporting data from the Syncfusion ASP.NET Core Grid, you have an option to remove the header row from the exported file. This can be useful when you want to export grid data without including the header values in the exported document. diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/searching.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/searching.md index f22d72acad..15e3e1cf23 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/searching.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/searching.md @@ -255,6 +255,26 @@ The following example demonstrates how to clear the searched records using an ex > You can also clear the searched records by using the clear icon within the search input field. +## Retrieve searched records by external button + +The Syncfusion Grid allows users to retrieve searched records using an external button. This functionality enables capturing the search text entered in the toolbar and filtering the data accordingly. + +To achieve this, the [ActionComplete](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Grids.Grid.html#Syncfusion_EJ2_Grids_Grid_ActionComplete) event can be used. This event is triggered when a search action is performed, allowing access to the search text. The captured search string can then be used with the `executeQuery` method of the `DataManager` to retrieve the matching records. + +The following example demonstrates how to retrieve searched records using an external button: + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/search/retrieve-records/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="retrieve-records.cs" %} +{% include code-snippet/grid/search/retrieve-records/retrieve-records.cs %} +{% endhighlight %} +{% endtabs %} + +![Retrieve searched records](images/search/retrieve-records.png) + ## See also * [How to perform search by using Wildcard and LIKE operator filter](https://ej2.syncfusion.com/aspnetcore/documentation/grid/filtering/filtering#wildcard-and-like-operator-filter) diff --git a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/state-management.md b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/state-management.md index 181ed59c9d..4bba926d68 100644 --- a/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/state-management.md +++ b/ej2-asp-core-mvc/grid/EJ2_ASP.NETCORE/state-management.md @@ -1,6 +1,6 @@ --- layout: post -title: State management in ##Platform_Name## Grid Component +title: State management in Syncfusion ##Platform_Name## Grid Component description: Learn here all about State management in Syncfusion ##Platform_Name## Grid component of Syncfusion Essential JS 2 and more. platform: ej2-asp-core-mvc control: State management @@ -130,6 +130,30 @@ When [enablePersistence](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusio {% endhighlight %} {% endtabs %} +## Observables binding with state persistence + +The Syncfusion Grid supports state persistence when using observable binding, ensuring that the Grid retains its state across sessions. This is useful when dealing with real-time data updates or asynchronous data sources while preserving user interactions such as sorting, filtering, paging, and grouping. + +To implement state persistence with observables, the initial query state must be manually handled. This involves: + + * Retrieving the initial query using the Grid’s `getDataModule` method with `generateQuery`. + + * Obtaining the state from the query via `getStateEventArgument` method. + + * Sending the retrieved state to the service to fetch data accordingly. + +Except for the initial render, state persistence ensures that manually performed actions are retained by storing the state in the browser’s `localStorage`, allowing it to persist across page reloads. The following example demonstrates how to use the [created](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_Created) event to send the persisted state to the service at initial render: + +{% tabs %} +{% highlight cshtml tabtitle="CSHTML" %} +{% include code-snippet/grid/state-persist/observable/tagHelper %} +{% endhighlight %} + +{% highlight c# tabtitle="observable.cs" %} +{% include code-snippet/grid/state-persist/observable/observable.cs %} +{% endhighlight %} +{% endtabs %} + ## Get or set local storage value If the [enablePersistence](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.grids.grid.html#Syncfusion_EJ2_Grids_Grid_EnablePersistence) property is set to **true**, the Grid property value is saved in the **window.localStorage** for reference. You can get or set the localStorage value by using the **getItem** and **setItem** methods in **window.localStorage**. diff --git a/ej2-asp-core-mvc/grid/images/columns/frozen-datepicker.jpg b/ej2-asp-core-mvc/grid/images/columns/frozen-datepicker.jpg new file mode 100644 index 0000000000..665473d8c1 Binary files /dev/null and b/ej2-asp-core-mvc/grid/images/columns/frozen-datepicker.jpg differ diff --git a/ej2-asp-core-mvc/grid/images/custom-headers.png b/ej2-asp-core-mvc/grid/images/custom-headers.png new file mode 100644 index 0000000000..bc4c9b1652 Binary files /dev/null and b/ej2-asp-core-mvc/grid/images/custom-headers.png differ diff --git a/ej2-asp-core-mvc/grid/images/search/retrieve-records.png b/ej2-asp-core-mvc/grid/images/search/retrieve-records.png new file mode 100644 index 0000000000..5fcfc3da1d Binary files /dev/null and b/ej2-asp-core-mvc/grid/images/search/retrieve-records.png differ diff --git a/ej2-asp-core-toc.html b/ej2-asp-core-toc.html index a2800a968a..35c16fb1c8 100644 --- a/ej2-asp-core-toc.html +++ b/ej2-asp-core-toc.html @@ -1433,6 +1433,7 @@
  • Enable or Disable Grid and its actions
  • Use custom helper inside the loop with templates
  • Perform CRUD operation using anti-forgery token
  • +
  • Customize the empty record template
  • Resize the Grid in various dimension
  • diff --git a/ej2-asp-mvc-toc.html b/ej2-asp-mvc-toc.html index a1e55c1838..f53fd9990e 100644 --- a/ej2-asp-mvc-toc.html +++ b/ej2-asp-mvc-toc.html @@ -1385,6 +1385,7 @@
  • Render both EJ1 and EJ2 Grids in same application
  • Avoid Typescript Compilation
  • Resize the Grid in various dimension
  • +
  • Customize the empty record template
  • Use custom helper inside the loop with templates