@@ -133,6 +138,8 @@ With Angular, Vue or React, two-way binding to a component property is sufficien
##### React
+If you need to update form data at runtime, bind the [formData](/api-reference/10%20UI%20Components/dxForm/1%20Configuration/formData.md '/Documentation/ApiReference/UI_Components/dxForm/Configuration/#formData') property to a state property. Swapping the whole **formData** object rerenders the UI component from scratch; updating specific **formData** fields rerenders only the corresponding editors.
+
import React from 'react';
diff --git a/concepts/05 UI Components/Form/Demos.md b/concepts/05 UI Components/Form/Demos.md
new file mode 100644
index 0000000000..b244082107
--- /dev/null
+++ b/concepts/05 UI Components/Form/Demos.md
@@ -0,0 +1,8 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/Overview/)
+- [Customize Item](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/CustomizeItem/)
+- [Grouped Fields](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/GroupedFields/)
+- [Columns Adaptability](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/ColumnsAdaptability/)
+- [Validation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/Validation/)
+- [Customize Fields at Runtime](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Form/UpdateItemsDynamically/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Funnel/Demos.md b/concepts/05 UI Components/Funnel/Demos.md
new file mode 100644
index 0000000000..6006109ec7
--- /dev/null
+++ b/concepts/05 UI Components/Funnel/Demos.md
@@ -0,0 +1,4 @@
+#include demos-intro
+
+- [Funnel Chart](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/FunnelChart/)
+- [Pyramid Chart](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/PyramidChart/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Gallery/30 Customize Item Appearance.md b/concepts/05 UI Components/Gallery/30 Customize Item Appearance.md
index 6d4208892f..1289ea89df 100644
--- a/concepts/05 UI Components/Gallery/30 Customize Item Appearance.md
+++ b/concepts/05 UI Components/Gallery/30 Customize Item Appearance.md
@@ -107,9 +107,23 @@ Gallery items are not sctrictly images. They can contain text or other elements
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate').
---
+##### jQuery
+
+
+ $(function () {
+ $("#galleryContainer").dxGallery({
+ dataSource: galleryData,
+ height: 300,
+ itemTemplate: function(e){
+ e.itemElement.empty();
+ e.itemElement.append("
Name: " + e.itemData.name + "
");
+ e.itemElement.append("
");
+ }
+ });
+ });
##### Angular
@@ -217,20 +231,8 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use
DOM manipulation methods to combine the HTML markup for menu items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxMenu/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- $(function () {
- $("#galleryContainer").dxGallery({
- dataSource: galleryData,
- height: 300,
- itemTemplate: function(e){
- e.itemElement.empty();
- e.itemElement.append("
Name: " + e.itemData.name + "
");
- e.itemElement.append("
");
- }
- });
- });
+---
+##### jQuery
You can also customize an individual Gallery item. For this purpose, declare a template for this item as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxGallery/Configuration/items/#template') field of the item's data object.
@@ -247,7 +249,7 @@ You can also customize an individual Gallery item. For this purpose, declare a t
// ...
];
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+---
#include common-demobutton-named with {
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gallery/ItemTemplate/",
diff --git a/concepts/05 UI Components/Gallery/Demos.md b/concepts/05 UI Components/Gallery/Demos.md
new file mode 100644
index 0000000000..6ef3b08443
--- /dev/null
+++ b/concepts/05 UI Components/Gallery/Demos.md
@@ -0,0 +1,5 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gallery/Overview/)
+- [Item Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gallery/ItemTemplate/)
+- [Item 3rd-Party Engine Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gallery/Item3RdPartyEngineTemplate/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Gantt/Demos.md b/concepts/05 UI Components/Gantt/Demos.md
new file mode 100644
index 0000000000..852a83f5d4
--- /dev/null
+++ b/concepts/05 UI Components/Gantt/Demos.md
@@ -0,0 +1,26 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/Overview/)
+
+**Data**
+
+- [Data Binding and Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/DataBinding/)
+- [Validation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/Validation/)
+
+**UI Customization**
+
+- [Chart Appearance](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/ChartAppearance/)
+- [Task Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/TaskTemplate/)
+- [Toolbar](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/Toolbar/)
+- [Context Menu](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/ContextMenu/)
+
+**Filtering**
+
+- [Filter Row](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/FilterRow/)
+- [Header Filter](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/HeaderFilter/)
+
+**More Features**
+
+- [Strip Lines](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/StripLines/)
+- [Export to PDF](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/ExportToPDF/)
+- [Sorting](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gantt/Sorting/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/HtmlEditor/Demos.md b/concepts/05 UI Components/HtmlEditor/Demos.md
new file mode 100644
index 0000000000..ef8ee4d62d
--- /dev/null
+++ b/concepts/05 UI Components/HtmlEditor/Demos.md
@@ -0,0 +1,7 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/HtmlEditor/Overview/)
+- [Output Formats](https://js.devexpress.com/Demos/WidgetsGallery/Demo/HtmlEditor/OutputFormats/)
+- [Toolbar Customization](https://js.devexpress.com/Demos/WidgetsGallery/Demo/HtmlEditor/ToolbarCustomization/)
+- [Mentions](https://js.devexpress.com/Demos/WidgetsGallery/Demo/HtmlEditor/Mentions/)
+- [Tables](https://js.devexpress.com/Demos/WidgetsGallery/Demo/HtmlEditor/Tables/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/LinearGauge/Demos.md b/concepts/05 UI Components/LinearGauge/Demos.md
new file mode 100644
index 0000000000..9aaa665858
--- /dev/null
+++ b/concepts/05 UI Components/LinearGauge/Demos.md
@@ -0,0 +1,10 @@
+#include demos-intro
+
+- [Update Linear Gauge Data at Runtime](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/UpdateLinearGaugeDataAtRuntime/)
+- [Scale Custom Tick Interval](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/ScaleCustomTickInterval/)
+- [Scale Custom Tick Values](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/ScaleCustomTickValues/)
+- [Different Value Indicator Types](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/DifferentValueIndicatorTypesLinearGauge/)
+- [Different Subvalue Indicator Types](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/DifferentSubvalueIndicatorTypesLinearGauge/)
+- [Base Value for Range Bar](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/BaseValueForRangeBar/)
+- [Custom Layout](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/CustomLayoutLinearGauge/)
+- [Variable Number of Subvalue Indicators](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Gauges/VariableNumberOfSubvalueIndicators/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/List/05 Customize Item Appearance.md b/concepts/05 UI Components/List/05 Customize Item Appearance.md
index c5ff350bcc..d91ccdbce2 100644
--- a/concepts/05 UI Components/List/05 Customize Item Appearance.md
+++ b/concepts/05 UI Components/List/05 Customize Item Appearance.md
@@ -96,9 +96,31 @@ For a minor customization of List items, you can define [specific fields](/api-r
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#itemTemplate').
---
+##### jQuery
+
+
+ const fruits = [
+ { name: "Apples", count: 10 },
+ { name: "Oranges", count: 12 },
+ { name: "Lemons", count: 15 },
+ { name: "Pears", count: 20 },
+ { name: "Pineapples", count: 3 }
+ ];
+
+ $(function() {
+ $("#listContainer").dxList({
+ dataSource: fruits,
+ itemTemplate: function(data, _, element) {
+ element.append(
+ $("
").text(data.fruit), $("
"),
+ $("").text(data.count).css("margin", 0)
+ )
+ }
+ });
+ });
##### Angular
@@ -211,28 +233,8 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- const fruits = [
- { name: "Apples", count: 10 },
- { name: "Oranges", count: 12 },
- { name: "Lemons", count: 15 },
- { name: "Pears", count: 20 },
- { name: "Pineapples", count: 3 }
- ];
-
- $(function() {
- $("#listContainer").dxList({
- dataSource: fruits,
- itemTemplate: function(data, _, element) {
- element.append(
- $("").text(data.fruit), $("
"),
- $("
").text(data.count).css("margin", 0)
- )
- }
- });
- });
+---
+##### jQuery
You can also customize an individual List item. For this purpose, declare a template for this item as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/items/#template') field.
@@ -248,7 +250,7 @@ You can also customize an individual List item. For this purpose, declare a temp
// ...
];
-In addition, you can use a 3rd-party template engine to perform the needed customizations. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+---
#include common-demobutton-named with {
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ItemTemplate/",
diff --git a/concepts/05 UI Components/List/14 Grouping/05 Customize Group Headers.md b/concepts/05 UI Components/List/14 Grouping/05 Customize Group Headers.md
index fa3f39c476..2ffbe5c1eb 100644
--- a/concepts/05 UI Components/List/14 Grouping/05 Customize Group Headers.md
+++ b/concepts/05 UI Components/List/14 Grouping/05 Customize Group Headers.md
@@ -1,6 +1,49 @@
-You can define a [groupTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#groupTemplate') to customize group headers. In Angular and Vue, declare the template in the markup. In React, use a rendering function (shown in the code below) or component. Without a **groupTemplate**, group headers display the text of the **key** field in bold font.
+You can define a [groupTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#groupTemplate') to customize group headers. Without a **groupTemplate**, group headers display the text of the **key** field in bold font.
---
+##### jQuery
+
+ const fruitsVegetables = [{
+ key: "Fruits",
+ items: [
+ { name: "Apples", count: 10 },
+ { name: "Oranges", count: 12 },
+ { name: "Lemons", count: 15 }
+ ]
+ }, {
+ key: "Vegetables",
+ items: [
+ { name: "Potatoes", count: 5 },
+ { name: "Tomatoes", count: 9 },
+ { name: "Turnips", count: 8 }
+ ]
+ }];
+
+ $(function() {
+ $("#listContainer").dxList({
+ dataSource: new DevExpress.data.DataSource({
+ store: fruitsVegetables,
+ map: function(groupedItem) {
+ let overallCount = 0;
+ groupedItem.items.forEach(function(item) {
+ overallCount += item.count;
+ });
+ return $.extend(groupedItem, { overallCount: overallCount })
+ }
+ }),
+ grouped: true,
+ groupTemplate: function(groupData, _, groupElement) {
+ groupElement.append(
+ $("
").text(groupData.key + " | " + groupData.overallCount)
+ )
+ },
+ itemTemplate: function(data, _, element) {
+ element.append(
+ $("
").text(data.name + " | " + data.count).css("margin", 0)
+ )
+ }
+ });
+ });
##### Angular
@@ -181,56 +224,10 @@ You can define a [groupTemplate](/api-reference/10%20UI%20Components/dxList/1%20
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for group headers. To apply this markup, use the [groupTemplate](/api-reference/10%20UI%20Components/dxList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxList/Configuration/#groupTemplate') callback function as shown in the following code.
-
- const fruitsVegetables = [{
- key: "Fruits",
- items: [
- { name: "Apples", count: 10 },
- { name: "Oranges", count: 12 },
- { name: "Lemons", count: 15 }
- ]
- }, {
- key: "Vegetables",
- items: [
- { name: "Potatoes", count: 5 },
- { name: "Tomatoes", count: 9 },
- { name: "Turnips", count: 8 }
- ]
- }];
-
- $(function() {
- $("#listContainer").dxList({
- dataSource: new DevExpress.data.DataSource({
- store: fruitsVegetables,
- map: function(groupedItem) {
- let overallCount = 0;
- groupedItem.items.forEach(function(item) {
- overallCount += item.count;
- });
- return $.extend(groupedItem, { overallCount: overallCount })
- }
- }),
- grouped: true,
- groupTemplate: function(groupData, _, groupElement) {
- groupElement.append(
- $("
").text(groupData.key + " | " + groupData.overallCount)
- )
- },
- itemTemplate: function(data, _, element) {
- element.append(
- $("
").text(data.name + " | " + data.count).css("margin", 0)
- )
- }
- });
- });
-
#include common-demobutton with {
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/GroupedList/"
}
-In addition, you can use a 3rd-party template engine to perform the needed customizations. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
-
#####See Also#####
- [List API Reference](/api-reference/10%20UI%20Components/dxList '/Documentation/ApiReference/UI_Components/dxList/')
diff --git a/concepts/05 UI Components/List/Demos.md b/concepts/05 UI Components/List/Demos.md
new file mode 100644
index 0000000000..1eeaa9fa49
--- /dev/null
+++ b/concepts/05 UI Components/List/Demos.md
@@ -0,0 +1,10 @@
+#include demos-intro
+
+- [Item Deletion UI](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ListEditingAndAPI/)
+- [Grouped List](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/GroupedList/)
+- [Item Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ItemTemplate/)
+- [Item 3rd-Party Engine Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/Item3RdPartyEngineTemplate/)
+- [List with Search Bar](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ListWithSearchBar/)
+- [List Selection](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ListSelection/)
+- [Item Drag & Drop](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/ItemDragging/)
+- [Web API Service](https://js.devexpress.com/Demos/WidgetsGallery/Demo/List/WebAPI/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/LoadIndicator/Demos.md b/concepts/05 UI Components/LoadIndicator/Demos.md
new file mode 100644
index 0000000000..5edd3124a6
--- /dev/null
+++ b/concepts/05 UI Components/LoadIndicator/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Load Indicator](https://js.devexpress.com/Demos/WidgetsGallery/Demo/LoadIndicator/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/LoadPanel/Demos.md b/concepts/05 UI Components/LoadPanel/Demos.md
new file mode 100644
index 0000000000..d96dad7f36
--- /dev/null
+++ b/concepts/05 UI Components/LoadPanel/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Load Panel](https://js.devexpress.com/Demos/WidgetsGallery/Demo/LoadPanel/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Lookup/01 Choose a Drop-Down Editor.md b/concepts/05 UI Components/Lookup/01 Choose a Drop-Down Editor.md
new file mode 100644
index 0000000000..de31b0da01
--- /dev/null
+++ b/concepts/05 UI Components/Lookup/01 Choose a Drop-Down Editor.md
@@ -0,0 +1 @@
+#include editors-how-to-choose
\ No newline at end of file
diff --git a/concepts/05 UI Components/Lookup/10 Enable Grouping.md b/concepts/05 UI Components/Lookup/10 Enable Grouping.md
index 8775e25aef..72c74b5390 100644
--- a/concepts/05 UI Components/Lookup/10 Enable Grouping.md
+++ b/concepts/05 UI Components/Lookup/10 Enable Grouping.md
@@ -262,9 +262,30 @@ If you use the [DevExtreme DataSource](/api-reference/30%20Data%20Layer/DataSour
---
-To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#groupTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#groupTemplate').
---
+##### jQuery
+
+
+ const lookupData = [{
+ key: "Mr. John Heart",
+ items: ["Google AdWords Strategy", "New Brochures", "Update NDA Agreement"]
+ }, {
+ key: "Mrs. Olivia Peyton",
+ items: ["Update Personnel Files", "Non-Compete Agreements", "Give Final Approval for Refunds"]
+ }, // ...
+ ];
+
+ $(function() {
+ $("#lookupContainer").dxLookup({
+ dataSource: lookupData,
+ grouped: true,
+ groupTemplate: function (data) {
+ return $("
Assigned: " + data.key + "
");
+ }
+ });
+ });
##### Angular
@@ -380,28 +401,6 @@ To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20C
---
-If you use jQuery alone, use
DOM manipulation methods to combine the HTML markup for items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- const lookupData = [{
- key: "Mr. John Heart",
- items: ["Google AdWords Strategy", "New Brochures", "Update NDA Agreement"]
- }, {
- key: "Mrs. Olivia Peyton",
- items: ["Update Personnel Files", "Non-Compete Agreements", "Give Final Approval for Refunds"]
- }, // ...
- ];
-
- $(function() {
- $("#lookupContainer").dxLookup({
- dataSource: lookupData,
- grouped: true,
- groupTemplate: function (data) {
- return $("
Assigned: " + data.key + "
");
- }
- });
- });
-
#####See Also#####
- [Lookup - Customize the Appearance](/concepts/05%20UI%20Components/Lookup/20%20Customize%20the%20Appearance/05%20Customize%20Item%20Appearance.md '/Documentation/Guide/UI_Components/Lookup/Customize_the_Appearance/')
- [Lookup - Enable Paging](/concepts/05%20UI%20Components/Lookup/15%20Enable%20Paging.md '/Documentation/Guide/UI_Components/Lookup/Enable_Paging/')
diff --git a/concepts/05 UI Components/Lookup/20 Customize the Appearance/05 Customize Item Appearance.md b/concepts/05 UI Components/Lookup/20 Customize the Appearance/05 Customize Item Appearance.md
index 3135a15035..2d6f6215a0 100644
--- a/concepts/05 UI Components/Lookup/20 Customize the Appearance/05 Customize Item Appearance.md
+++ b/concepts/05 UI Components/Lookup/20 Customize the Appearance/05 Customize Item Appearance.md
@@ -103,9 +103,40 @@ For a minor customization of Lookup items, you can define [specific fields](/api
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#itemTemplate').
---
+##### jQuery
+
+
+ const lookupData = [{
+ id: 1,
+ name: "HD Video Player",
+ imgSrc: "images/products/1-small.png"
+ }, {
+ id: 2,
+ name: "UltraHD Player",
+ imgSrc: "images/products/2-small.png"
+ },
+ // ...
+ ];
+
+ $(function() {
+ $("#lookupContainer").dxLookup({
+ dataSource: lookupData,
+ valueExpr: 'id',
+ displayExpr: 'name',
+ itemTemplate: function (itemData, itemIndex, itemElement) {
+ return $("
").append(
+ $("
").attr("src", itemData.imgSrc),
+ $("
").text(itemData.name)
+ .css("display", "inline-block")
+ .css("font-style", (itemIndex % 2 == 0) ? "italic" : "normal")
+ );
+ }
+ });
+ });
+
##### Angular
@@ -240,36 +271,8 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use
DOM manipulation methods to combine the HTML markup for items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- const lookupData = [{
- id: 1,
- name: "HD Video Player",
- imgSrc: "images/products/1-small.png"
- }, {
- id: 2,
- name: "UltraHD Player",
- imgSrc: "images/products/2-small.png"
- },
- // ...
- ];
-
- $(function() {
- $("#lookupContainer").dxLookup({
- dataSource: lookupData,
- valueExpr: 'id',
- displayExpr: 'name',
- itemTemplate: function (itemData, itemIndex, itemElement) {
- return $("
").append(
- $("
").attr("src", itemData.imgSrc),
- $("
").text(itemData.name)
- .css("display", "inline-block")
- .css("font-style", (itemIndex % 2 == 0) ? "italic" : "normal")
- );
- }
- });
- });
+---
+##### jQuery
You can also customize an individual Lookup item. For this purpose, declare a template for this item as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/items/#template') field.
@@ -285,6 +288,8 @@ You can also customize an individual Lookup item. For this purpose, declare a te
// ...
];
+---
+
Using similar techniques, you can customize the input field of the Lookup. The template for it should be assigned to the [fieldTemplate](/api-reference/10%20UI%20Components/dxLookup/1%20Configuration/fieldTemplate.md '/Documentation/ApiReference/UI_Components/dxLookup/Configuration/#fieldTemplate') property.
---
@@ -428,8 +433,6 @@ Using similar techniques, you can customize the input field of the Lookup. The t
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Lookup/Templates/"
}
-In addition, you can use a 3rd-party template engine to perform the needed customizations. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
-
#####See Also#####
- [Lookup - Customize the Drop-Down Menu](/concepts/05%20UI%20Components/Lookup/20%20Customize%20the%20Appearance/08%20Customize%20the%20Drop-Down%20Menu.md '/Documentation/Guide/UI_Components/Lookup/Customize_the_Appearance/Customize_the_Drop-Down_Menu/')
diff --git a/concepts/05 UI Components/Lookup/35 Lookup vs SelectBox.md b/concepts/05 UI Components/Lookup/35 Lookup vs SelectBox.md
index 86a83e0ccf..fc8194ee48 100644
--- a/concepts/05 UI Components/Lookup/35 Lookup vs SelectBox.md
+++ b/concepts/05 UI Components/Lookup/35 Lookup vs SelectBox.md
@@ -29,4 +29,4 @@ The SelectBox looks the same on any platform, while Lookup changes its appearanc
}
#####See Also#####
-- [How to Choose a Drop-Down Editor](/concepts/Common/Editors%20Concepts/How%20to%20Choose%20a%20Drop-Down%20Editor.md '/Documentation/Guide/Common/Editors_Concepts/How_to_Choose_a_Drop-Down_Editor/')
\ No newline at end of file
+- [How to Choose a Drop-Down Editor](/Documentation/Guide/UI_Components/Lookup/Choose_a_Drop-Down_Editor/)
diff --git a/concepts/05 UI Components/Lookup/Demos.md b/concepts/05 UI Components/Lookup/Demos.md
new file mode 100644
index 0000000000..b6b40b9991
--- /dev/null
+++ b/concepts/05 UI Components/Lookup/Demos.md
@@ -0,0 +1,5 @@
+#include demos-intro
+
+- [Basics](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Lookup/Basics/)
+- [Templates](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Lookup/Templates/)
+- [Handle Value Change](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Lookup/EventHandling/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Map/20 Configure Markers/05 Add and Remove.md b/concepts/05 UI Components/Map/20 Configure Markers/05 Add and Remove.md
index 111b1f6443..0f3e7caa4a 100644
--- a/concepts/05 UI Components/Map/20 Configure Markers/05 Add and Remove.md
+++ b/concepts/05 UI Components/Map/20 Configure Markers/05 Add and Remove.md
@@ -103,6 +103,10 @@ To add markers at design-time, pass an array of objects to the [markers](/api-re
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Map/Markers/"
}
+
+---
+##### jQuery
+
To add or remove a marker at runtime, call the [addMarker(markerOptions)](/api-reference/10%20UI%20Components/dxMap/3%20Methods/addMarker(markerOptions).md '/Documentation/ApiReference/UI_Components/dxMap/Methods/#addMarkermarkerOptions') or [removeMarker(marker)](/api-reference/10%20UI%20Components/dxMap/3%20Methods/removeMarker(marker).md '/Documentation/ApiReference/UI_Components/dxMap/Methods/#removeMarkermarker') method.
@@ -157,11 +161,10 @@ In the following code, a marker is added each time a user clicks someplace on th
});
});
-With Angular, Vue, or React, use a different technique. Bind the **markers** property of the Map UI component to a component property.
-
----
##### Angular
+To add or remove a marker at runtime, bind the **markers** property of the Map to a component property:
+
@@ -149,11 +152,10 @@ To add or remove a route at runtime, call the [addRoute(routeOptions)](/api-refe
// Removes the routes with indexes 0 and 2 in the "routes" array
map.removeRoute([0, 2]);
-With Angular, Vue, or React, use a different technique. Bind the **routes** property of the Map UI component to a component property.
-
----
##### Angular
+To add or remove a route at runtime, bind the **routes** property of the Map to a component property.
+
+ var menuItems = [{
+ text: 'Upload',
+ items: [
+ { text: 'From your computer' },
+ { text: 'From a cloud service' }
+ ]
+ }, {
+ text: 'Share',
+ items: [
+ { text: 'Log in with Facebook' },
+ { text: 'Log in with Twitter' }
+ ]
+ }];
+
+ $(function() {
+ $("#menuContainer").dxMenu({
+ items: menuItems,
+ itemTemplate: function(itemData, itemIndex, itemElement) {
+ itemElement.append("" + itemData.text + "");
+ }
+ });
+ });
+
+
+
##### Angular
@@ -259,47 +287,11 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery, use DOM manipulation methods to combine the HTML markup for menu items. To apply this markup, use the **itemTemplate** callback function as shown in the following code:
-
---
-
##### jQuery
-
- var menuItems = [{
- text: 'Upload',
- items: [
- { text: 'From your computer' },
- { text: 'From a cloud service' }
- ]
- }, {
- text: 'Share',
- items: [
- { text: 'Log in with Facebook' },
- { text: 'Log in with Twitter' }
- ]
- }];
-
- $(function() {
- $("#menuContainer").dxMenu({
- items: menuItems,
- itemTemplate: function(itemData, itemIndex, itemElement) {
- itemElement.append("" + itemData.text + "");
- }
- });
- });
-
-
-
-
----
-
You can also customize an individual menu item. For this purpose, declare a template for this item as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxMenu/Configuration/items/#template') field of the item's data object.
----
-
-##### jQuery
-
----
-
-With Angular, Vue, or React, use a different technique. Bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxPopover/Configuration/#visible') property of the Popover UI component to a component property. After that, change them, and the Popover will appear or disappear.
-
----
##### Angular
+To show or hide the Popover programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxPopover/Configuration/#visible') property of Popover to a component property. After that, change the latter property, and the Popover will appear or disappear.
+
@@ -194,6 +198,8 @@ With Angular, Vue, or React, use a different technique. Bind the [visible](/api-
##### React
+To show or hide the Popover programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxPopover/Configuration/#visible') property of Popover to a state property. After that, change the latter property, and the Popover will appear or disappear.
+
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
diff --git a/concepts/05 UI Components/Popover/10 Show and Hide the Popover/10 Events.md b/concepts/05 UI Components/Popover/10 Show and Hide the Popover/10 Events.md
index 4d73bc795f..3b8ba6437e 100644
--- a/concepts/05 UI Components/Popover/10 Show and Hide the Popover/10 Events.md
+++ b/concepts/05 UI Components/Popover/10 Show and Hide the Popover/10 Events.md
@@ -159,7 +159,9 @@ To execute certain commands before or after the Popover was shown/hidden, handle
---
-If you are going to change event handlers at runtime, or if you need to attach several handlers to a single event, subscribe to the events using the [on(eventName, eventHandler)](/api-reference/10%20UI%20Components/Component/3%20Methods/on(eventName_eventHandler).md '/Documentation/ApiReference/UI_Components/dxPopover/Methods/#oneventName_eventHandler') method. This approach is more typical of jQuery.
+---
+##### jQuery
+If you are going to change event handlers at runtime, or if you need to attach several handlers to a single event, subscribe to the events using the [on(eventName, eventHandler)](/api-reference/10%20UI%20Components/Component/3%20Methods/on(eventName_eventHandler).md '/Documentation/ApiReference/UI_Components/dxPopover/Methods/#oneventName_eventHandler') method.
const hiddenEventHandler1 = function (e) {
@@ -174,6 +176,8 @@ If you are going to change event handlers at runtime, or if you need to attach s
.on("hidden", hiddenEventHandler1)
.on("hidden", hiddenEventHandler2);
+---
+
#####See Also#####
#include common-link-handleevents
- [Popover - Customize the Content](/concepts/05%20UI%20Components/Popover/05%20Customize%20the%20Appearance/05%20Customize%20the%20Content '/Documentation/Guide/UI_Components/Popover/Customize_the_Appearance/Customize_the_Content/')
diff --git a/concepts/05 UI Components/Popover/Demos.md b/concepts/05 UI Components/Popover/Demos.md
new file mode 100644
index 0000000000..b7b9c64a16
--- /dev/null
+++ b/concepts/05 UI Components/Popover/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Popover](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Popover/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Popup/10 Show and Hide the Popup/01 API.md b/concepts/05 UI Components/Popup/10 Show and Hide the Popup/01 API.md
index b00dfa5efd..8188ac1801 100644
--- a/concepts/05 UI Components/Popup/10 Show and Hide the Popup/01 API.md
+++ b/concepts/05 UI Components/Popup/10 Show and Hide the Popup/01 API.md
@@ -1,10 +1,10 @@
[note] In this article, the [Button](/api-reference/10%20UI%20Components/dxButton '/Documentation/ApiReference/UI_Components/dxButton/') UI component is used to demonstrate how to show and hide the Popup. This choice is made for purely demonstrational purposes, and you can do the same operations using another UI component following the same guidelines.
-To show or hide the Popup programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Popup, respectively.
-
---
##### jQuery
+To show or hide the Popup programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Popup, respectively.
+
$(function() {
$("#popupContainer").dxPopup({
title: "Popup Title",
@@ -32,6 +32,8 @@ To show or hide the Popup programmatically, call the [show()](/api-reference/10%
##### ASP.NET MVC Controls
+To show or hide the Popup programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxPopup/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Popup, respectively.
+
@(Html.DevExtreme().Popup()
.ID("popup")
@@ -97,13 +99,10 @@ To show or hide the Popup programmatically, call the [show()](/api-reference/10%
}
----
-
-With Angular, Vue or React, use a different technique. Bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxPopup/Configuration/#visible') property of the Popup UI component to a component property. After that, change this component property, and the Popup will appear or disappear.
-
----
##### Angular
+To show or hide the Popup programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxPopup/Configuration/#visible') property of Popup to a component property. After that, change the latter property, and the Popup will appear or disappear.
+
+ $(function() {
+ $("#radioGroupContainer").dxRadioGroup({
+ dataSource: [
+ { text: "Low", color: "grey" },
+ { text: "Normal", color: "green" },
+ { text: "Urgent", color: "yellow" },
+ { text: "High", color: "red" }
+ ],
+ itemTemplate: function(itemData, itemIndex, itemElement){
+ itemElement.append(
+ $("").attr("style", "color:" + itemData.color )
+ .text(itemData.text)
+ );
+ }
+ });
+ });
+
##### Angular
@@ -182,25 +202,8 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/DataExpressionMixin/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxRadioGroup/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- $(function() {
- $("#radioGroupContainer").dxRadioGroup({
- dataSource: [
- { text: "Low", color: "grey" },
- { text: "Normal", color: "green" },
- { text: "Urgent", color: "yellow" },
- { text: "High", color: "red" }
- ],
- itemTemplate: function(itemData, itemIndex, itemElement){
- itemElement.append(
- $("").attr("style", "color:" + itemData.color )
- .text(itemData.text)
- );
- }
- });
- });
+---
+##### jQuery
You can also customize an individual item. For this purpose, declare a template for it as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxRadioGroup/Configuration/items/#template').
@@ -217,7 +220,7 @@ You can also customize an individual item. For this purpose, declare a template
// ...
];
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+---
#####See Also#####
- [RadioGroup - Handle the Value Change Event](/concepts/05%20UI%20Components/RadioGroup/05%20Handle%20the%20Value%20Change%20Event.md '/Documentation/Guide/UI_Components/RadioGroup/Handle_the_Value_Change_Event')
diff --git a/concepts/05 UI Components/RadioGroup/Demos.md b/concepts/05 UI Components/RadioGroup/Demos.md
new file mode 100644
index 0000000000..76373969cc
--- /dev/null
+++ b/concepts/05 UI Components/RadioGroup/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Radio Group](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RadioGroup/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/RangeSelector/Demos.md b/concepts/05 UI Components/RangeSelector/Demos.md
new file mode 100644
index 0000000000..bae753564d
--- /dev/null
+++ b/concepts/05 UI Components/RangeSelector/Demos.md
@@ -0,0 +1,15 @@
+#include demos-intro
+
+- [Numeric Scale (Lightweight)](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/NumericScaleLightweight/)
+- [Numeric Scale](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/NumericScale/)
+- [Date-Time Scale (Lightweight_](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/DateTimeScaleLightweight/)
+- [Date-Time Scale](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/DateTimeScale/)
+- [Logarithmic Scale](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/LogarithmicScale/)
+- [Discrete Scale](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/DiscreteScale/)
+- [Custom Formatting](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/CustomFormatting/)
+- [Use Range Selection for Calculation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/UseRangeSelectionForCalculation/)
+- [Use Range Selection for Filtering](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/UseRangeSelectionForFiltering/)
+- [Image on Background](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/ImageOnBackground/)
+- [Chart on Background](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/ChartOnBackground/)
+- [Customized Chart on Background](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/CustomizedChartOnBackground/)
+- [Chart on Background with Series Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSelector/ChartOnBackgroundWithSeriesTemplate/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/RangeSlider/Demos.md b/concepts/05 UI Components/RangeSlider/Demos.md
new file mode 100644
index 0000000000..6f6ea962b0
--- /dev/null
+++ b/concepts/05 UI Components/RangeSlider/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Range Slider](https://js.devexpress.com/Demos/WidgetsGallery/Demo/RangeSlider/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Resizable/Demos.md b/concepts/05 UI Components/Resizable/Demos.md
new file mode 100644
index 0000000000..d21197a637
--- /dev/null
+++ b/concepts/05 UI Components/Resizable/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Resizable/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/ResponsiveBox/Demos.md b/concepts/05 UI Components/ResponsiveBox/Demos.md
new file mode 100644
index 0000000000..5511e71c2d
--- /dev/null
+++ b/concepts/05 UI Components/ResponsiveBox/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Responsive Box](https://js.devexpress.com/Demos/WidgetsGallery/Demo/ResponsiveBox/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Sankey/Demos.md b/concepts/05 UI Components/Sankey/Demos.md
new file mode 100644
index 0000000000..c09bfffbf8
--- /dev/null
+++ b/concepts/05 UI Components/Sankey/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Sankey Chart](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/SankeyChart/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Scheduler/00 Getting Started with Scheduler/05 Bind the Scheduler to Data.md b/concepts/05 UI Components/Scheduler/00 Getting Started with Scheduler/05 Bind the Scheduler to Data.md
index e9c81d8c7c..5304672069 100644
--- a/concepts/05 UI Components/Scheduler/00 Getting Started with Scheduler/05 Bind the Scheduler to Data.md
+++ b/concepts/05 UI Components/Scheduler/00 Getting Started with Scheduler/05 Bind the Scheduler to Data.md
@@ -12,7 +12,7 @@ The Scheduler can load and update data from these data source types:
Use the [dataSource](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/dataSource.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#dataSource') property to specify a data source. In this tutorial, we use a local array.
-Once you assign the data source, you need to map field values to appointment attributes. If data objects include fields that match the [predefined structure](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/'), the Scheduler recognizes them automatically and displays appointments without further configuration. To map other fields, use **...Expr** properties. In this tutorial, the [startDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/startDate.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#startDate') and [endDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/endDate.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#endDate') fields are recognized automatically, whereas other field names are specified in the [textExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/textExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#textExpr'), [allDayExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/allDayExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#allDayExpr'), and [recurrenceRuleExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/recurrenceRuleExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#recurrenceRuleExpr') properties.
+Once you assign the data source, you need to map field values to appointment attributes. If data objects include fields that match the [predefined structure](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/'), the Scheduler recognizes them automatically and displays appointments without further configuration. To map other fields, use **...Expr** properties. In this tutorial, the [startDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/startDate.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#startDate') and [endDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/endDate.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#endDate') fields are recognized automatically, whereas other field names are specified in the [textExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/textExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#textExpr'), [allDayExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/allDayExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#allDayExpr'), and [recurrenceRuleExpr](/api-reference/10%20UI%20Components/dxScheduler/1%20Configuration/recurrenceRuleExpr.md '/Documentation/ApiReference/UI_Components/dxScheduler/Configuration/#recurrenceRuleExpr') properties.
---
##### jQuery
diff --git a/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/020 All-Day Appointments.md b/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/020 All-Day Appointments.md
index f10ac0a7ab..3ad766bb9f 100644
--- a/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/020 All-Day Appointments.md
+++ b/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/020 All-Day Appointments.md
@@ -2,7 +2,7 @@ An all-day appointment occupies the entire day.
![Scheduler All-Day Appointment](/images/UiWidgets/Scheduler_AllDayAppointment.png)
-To create an all-day appointment, set its [allDay](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/allDay.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#allDay') field to **true**. An all-day appointment must have a [startDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/startDate.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#startDate') field. You can also set an [endDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/endDate.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#endDate') field if the appointment occupies more than one day. Time values in these fields are ignored.
+To create an all-day appointment, set its [allDay](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/allDay.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#allDay') field to **true**. An all-day appointment must have a [startDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/startDate.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#startDate') field. You can also set an [endDate](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/endDate.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#endDate') field if the appointment occupies more than one day. Time values in these fields are ignored.
var allDayAppointment = [{
diff --git a/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/030 Recurring Appointments.md b/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/030 Recurring Appointments.md
index ef61ff01c7..afc5a9b4f4 100644
--- a/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/030 Recurring Appointments.md
+++ b/concepts/05 UI Components/Scheduler/030 Appointments/015 Appointment Types/030 Recurring Appointments.md
@@ -2,7 +2,7 @@ A recurring appointment repeats at a specified interval.
![Scheduler Recurring Appointment](/images/UiWidgets/Scheduler_RecurrentAppointment.png)
-To make an appointment recurring, specify the [recurrenceRule](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/recurrenceRule.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#recurrenceRule') field with a value according to the iCalendar RFC 2445 specification. This creates an appointment series. You can exclude specific appointments from it if you set their [recurrenceException](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/recurrenceException.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#recurrenceException') field. For example, the appointment below occurs daily since February 20, 2021, except February 22 and 23:
+To make an appointment recurring, specify the [recurrenceRule](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/recurrenceRule.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#recurrenceRule') field with a value according to the iCalendar RFC 2445 specification. This creates an appointment series. You can exclude specific appointments from it if you set their [recurrenceException](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/recurrenceException.md '/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#recurrenceException') field. For example, the appointment below occurs daily since February 20, 2021, except February 22 and 23:
diff --git a/concepts/05 UI Components/Scheduler/030 Appointments/050 Customize Appointment.md b/concepts/05 UI Components/Scheduler/030 Appointments/050 Customize Appointment.md
index 8819efa1d9..59630ada2b 100644
--- a/concepts/05 UI Components/Scheduler/030 Appointments/050 Customize Appointment.md
+++ b/concepts/05 UI Components/Scheduler/030 Appointments/050 Customize Appointment.md
@@ -185,7 +185,7 @@ If you need a more flexible solution, combine HTML markup for appointments manua
});
});
-You can also customize an individual appointment. For this purpose, declare a template for this appointment as a script and pass its `id` to the [template](/api-reference/50%20Common/Object%20Structures/dxSchedulerAppointment/template.md '/Documentation/ApiReference/Common/Object_Structures/dxSchedulerAppointment/#template') field of the appointment's data object.
+You can also customize an individual appointment. For this purpose, declare a template for this appointment as a script and pass its `id` to the [template](/Documentation/ApiReference/UI_Components/dxScheduler/Interfaces/dxSchedulerAppointment/#template) field of the appointment's data object.
##### Angular
+You can also customize individual items. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -368,6 +385,8 @@ You can also customize individual items. In Angular, Vue, and React, declare the
##### Vue
+You can also customize individual items. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -398,6 +417,8 @@ You can also customize individual items. In Angular, Vue, and React, declare the
##### React
+You can also customize individual items. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
@@ -420,33 +441,10 @@ You can also customize individual items. In Angular, Vue, and React, declare the
}
export default App;
-
-##### jQuery
-
-
- $(function() {
- $("#tabPanelContainer").dxTabPanel({
- items: [{
- title: "Info",
- template: function() {
- return $("").text("This is Info Tab");
- }
- }, {
- title: "Contacts",
- template: $("#individualTemplate")
- }]
- });
- });
-
-
-
-
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#####See Also#####
- [TabPanel - Control the Behavior](/concepts/05%20UI%20Components/TabPanel/15%20Control%20the%20Behavior.md '/Documentation/Guide/UI_Components/TabPanel/Control_the_Behavior')
diff --git a/concepts/05 UI Components/TabPanel/Demos.md b/concepts/05 UI Components/TabPanel/Demos.md
new file mode 100644
index 0000000000..1181e1659b
--- /dev/null
+++ b/concepts/05 UI Components/TabPanel/Demos.md
@@ -0,0 +1,4 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TabPanel/Overview/)
+- [Tab Drag & Drop](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TabPanel/SortableClosableTabs/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Tabs/05 Customize Item Appearance.md b/concepts/05 UI Components/Tabs/05 Customize Item Appearance.md
index 352119011a..f42cb7df93 100644
--- a/concepts/05 UI Components/Tabs/05 Customize Item Appearance.md
+++ b/concepts/05 UI Components/Tabs/05 Customize Item Appearance.md
@@ -95,9 +95,25 @@ For a minor customization of tabs, you can define [specific fields](/api-referen
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate').
---
+##### jQuery
+
+
+ $(function() {
+ $("#tabsContainer").dxTabs({
+ items: [
+ { text: "User" },
+ { text: "Comment" },
+ { text: "Find" }
+ ],
+ itemTemplate: function (itemData, itemIndex, itemElement) {
+ itemElement.append("" + itemData.text + "
");
+ }
+ });
+ });
+
##### Angular
@@ -195,31 +211,10 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery, use DOM manipulation methods to combine the HTML markup for tabs. To apply this markup, use the **itemTemplate** callback function as shown in the following code:
-
---
##### jQuery
-
- $(function() {
- $("#tabsContainer").dxTabs({
- items: [
- { text: "User" },
- { text: "Comment" },
- { text: "Find" }
- ],
- itemTemplate: function (itemData, itemIndex, itemElement) {
- itemElement.append("" + itemData.text + "
");
- }
- });
- });
-
----
-
-You can also customize individual tabs. In Angular, Vue, and React, declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component. When using jQuery, you can declare the tabs as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/items/#template') property or assign a customization function straight to this property.
-
----
-##### jQuery
+You can also customize individual tabs. Declare them as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/items/#template') property or assign a customization function straight to this property.
@@ -242,6 +237,8 @@ You can also customize individual tabs. In Angular, Vue, and React, declare them
##### Angular
+You can also customize individual tabs. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -268,6 +265,8 @@ You can also customize individual tabs. In Angular, Vue, and React, declare them
##### Vue
+You can also customize individual tabs. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -298,6 +297,8 @@ You can also customize individual tabs. In Angular, Vue, and React, declare them
##### React
+You can also customize individual tabs. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
@@ -323,7 +324,7 @@ You can also customize individual tabs. In Angular, Vue, and React, declare them
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#####See Also#####
- [Tabs Demos](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tabs/Overview)
diff --git a/concepts/05 UI Components/Tabs/Demos.md b/concepts/05 UI Components/Tabs/Demos.md
new file mode 100644
index 0000000000..cca7147334
--- /dev/null
+++ b/concepts/05 UI Components/Tabs/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Tabs](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tabs/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/TagBox/01 Choose a Drop-Down Editor.md b/concepts/05 UI Components/TagBox/01 Choose a Drop-Down Editor.md
new file mode 100644
index 0000000000..de31b0da01
--- /dev/null
+++ b/concepts/05 UI Components/TagBox/01 Choose a Drop-Down Editor.md
@@ -0,0 +1 @@
+#include editors-how-to-choose
\ No newline at end of file
diff --git a/concepts/05 UI Components/TagBox/05 Customize Item Appearance.md b/concepts/05 UI Components/TagBox/05 Customize Item Appearance.md
index 095aa6951a..fb87f64395 100644
--- a/concepts/05 UI Components/TagBox/05 Customize Item Appearance.md
+++ b/concepts/05 UI Components/TagBox/05 Customize Item Appearance.md
@@ -107,9 +107,39 @@ For a minor customization of TagBox items, you can define [specific fields](/api
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/#itemTemplate').
---
+##### jQuery
+
+
+ const tagBoxData = [{
+ id: 1,
+ name: "HD Video Player",
+ imgSrc: "images/products/1-small.png"
+ }, {
+ id: 2,
+ name: "UltraHD Player",
+ imgSrc: "images/products/2-small.png"
+ },
+ // ...
+ ];
+
+ $(function() {
+ $("#tagBoxContainer").dxTagBox({
+ dataSource: tagBoxData,
+ valueExpr: 'id',
+ displayExpr: 'name',
+ itemTemplate: function (itemData, itemIndex, itemElement) {
+ return $("").append(
+ $("").attr("src", itemData.imgSrc),
+ $("").text(itemData.name)
+ .css("display", "inline-block")
+ );
+ }
+ });
+ });
+
##### Angular
@@ -235,35 +265,8 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for items. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/dxSelectBox/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/#itemTemplate') callback function as shown in the following code.
-
-
- const tagBoxData = [{
- id: 1,
- name: "HD Video Player",
- imgSrc: "images/products/1-small.png"
- }, {
- id: 2,
- name: "UltraHD Player",
- imgSrc: "images/products/2-small.png"
- },
- // ...
- ];
-
- $(function() {
- $("#tagBoxContainer").dxTagBox({
- dataSource: tagBoxData,
- valueExpr: 'id',
- displayExpr: 'name',
- itemTemplate: function (itemData, itemIndex, itemElement) {
- return $("").append(
- $("").attr("src", itemData.imgSrc),
- $("").text(itemData.name)
- .css("display", "inline-block")
- );
- }
- });
- });
+---
+##### jQuery
You can also customize an individual item in the drop-down list. For this purpose, declare a template for this item as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/items/#template') field.
@@ -279,6 +282,8 @@ You can also customize an individual item in the drop-down list. For this purpos
// ...
];
+---
+
Using similar techniques, you can also customize tags of the selected items. The template for them should be assigned to the [tagTemplate](/api-reference/10%20UI%20Components/dxTagBox/1%20Configuration/tagTemplate.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/#tagTemplate') property.
---
@@ -397,7 +402,7 @@ Using similar techniques, you can also customize tags of the selected items. The
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#####See Also#####
- [TagBox API Reference](/api-reference/10%20UI%20Components/dxTagBox '/Documentation/ApiReference/UI_Components/dxTagBox/')
diff --git a/concepts/05 UI Components/TagBox/07 Grouping/05 Customize Group Headers.md b/concepts/05 UI Components/TagBox/07 Grouping/05 Customize Group Headers.md
index 9900b3906d..ccf113e8e6 100644
--- a/concepts/05 UI Components/TagBox/07 Grouping/05 Customize Group Headers.md
+++ b/concepts/05 UI Components/TagBox/07 Grouping/05 Customize Group Headers.md
@@ -1,6 +1,35 @@
-To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20Components/dxDropDownList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/#groupTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component. If the template is unspecified, group headers display the **key** data field in bold font.
+To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20Components/dxDropDownList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/#groupTemplate'). If the template is unspecified, group headers display the **key** data field in bold font.
---
+##### jQuery
+
+ const fruitsVegetables = [{
+ // ...
+ }];
+
+ $(function() {
+ $("#tagBoxContainer").dxTagBox({
+ dataSource: new DevExpress.data.DataSource({
+ store: fruitsVegetables,
+ map: function(groupedItem) {
+ let overallCount = 0;
+ groupedItem.items.forEach(function(item) {
+ overallCount += item.count;
+ });
+ return $.extend(groupedItem, { overallCount: overallCount })
+ }
+ }),
+ grouped: true,
+ groupTemplate: function(groupData, _, groupElement) {
+ groupElement.append(
+ $("").text(groupData.key + " | Count: " + groupData.overallCount)
+ )
+ },
+ displayExpr: 'name',
+ valueExpr: 'count'
+ });
+ });
+
##### Angular
@@ -175,41 +204,10 @@ To customize group headers, specify a [groupTemplate](/api-reference/10%20UI%20C
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for group headers. To apply this markup, use the [groupTemplate](/api-reference/10%20UI%20Components/dxDropDownList/1%20Configuration/groupTemplate.md '/Documentation/ApiReference/UI_Components/dxTagBox/Configuration/#groupTemplate') callback function as shown in the following code.
-
- const fruitsVegetables = [{
- // ...
- }];
-
- $(function() {
- $("#tagBoxContainer").dxTagBox({
- dataSource: new DevExpress.data.DataSource({
- store: fruitsVegetables,
- map: function(groupedItem) {
- let overallCount = 0;
- groupedItem.items.forEach(function(item) {
- overallCount += item.count;
- });
- return $.extend(groupedItem, { overallCount: overallCount })
- }
- }),
- grouped: true,
- groupTemplate: function(groupData, _, groupElement) {
- groupElement.append(
- $("
").text(groupData.key + " | Count: " + groupData.overallCount)
- )
- },
- displayExpr: 'name',
- valueExpr: 'count'
- });
- });
-
#include common-demobutton with {
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tag_Box/GroupedItems/"
}
-In addition, you can use a 3rd-party template engine to perform the needed customizations. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
-
#####See Also#####
- [TagBox - Customize Item Appearance](/concepts/05%20UI%20Components/TagBox/05%20Customize%20Item%20Appearance.md '/Documentation/Guide/UI_Components/TagBox/Customize_Item_Appearance/')
- [TagBox API Reference](/api-reference/10%20UI%20Components/dxTagBox '/Documentation/ApiReference/UI_Components/dxTagBox/')
diff --git a/concepts/05 UI Components/TagBox/Demos.md b/concepts/05 UI Components/TagBox/Demos.md
new file mode 100644
index 0000000000..16b2907fbb
--- /dev/null
+++ b/concepts/05 UI Components/TagBox/Demos.md
@@ -0,0 +1,5 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TagBox/Overview/)
+- [Grouped Items](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TagBox/GroupedItems/)
+- [Tag Count Limitation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TagBox/TagCountLimitation/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/TextArea/Demos.md b/concepts/05 UI Components/TextArea/Demos.md
new file mode 100644
index 0000000000..34c911db3d
--- /dev/null
+++ b/concepts/05 UI Components/TextArea/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Text Area](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TextArea/Overview/)
diff --git a/concepts/05 UI Components/TextBox/Demos.md b/concepts/05 UI Components/TextBox/Demos.md
new file mode 100644
index 0000000000..c0dab32892
--- /dev/null
+++ b/concepts/05 UI Components/TextBox/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Text Box](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TextBox/Overview/)
diff --git a/concepts/05 UI Components/TileView/05 Customize Tile Appearance.md b/concepts/05 UI Components/TileView/05 Customize Tile Appearance.md
index cd310d2ccc..597249a095 100644
--- a/concepts/05 UI Components/TileView/05 Customize Tile Appearance.md
+++ b/concepts/05 UI Components/TileView/05 Customize Tile Appearance.md
@@ -90,9 +90,38 @@ For a minor customization of tiles, you can define [specific fields](/api-refere
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxTileView/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTileView/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxTileView/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTileView/Configuration/#itemTemplate').
---
+##### jQuery
+
+ const tileViewData = [
+ { name: "Alabama", capital: "Montgomery" },
+ { name: "Alaska", capital: "Juneau" },
+ { name: "Arizona", capital: "Phoenix" },
+ // ...
+ ];
+
+ $(function() {
+ $("#tileViewContainer").dxTileView({
+ dataSource: tileViewData,
+ itemTemplate: function (itemData, itemIndex, itemElement) {
+ itemElement.addClass("tile");
+ itemElement.append(
+ "
" + itemData.name + "
",
+ "Capital: " + itemData.capital + "
"
+ )
+ }
+ });
+ });
+
+ .tile {
+ border-radius: .5em;
+ text-align: center;
+ color: white;
+ background: gray;
+ }
+
##### Angular
@@ -231,44 +260,10 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for tiles. To apply this markup, use the [itemTemplate](/api-reference/10%20UI%20Components/dxTileView/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTileView/Configuration/#itemTemplate') callback function as shown in the following code:
-
---
##### jQuery
- const tileViewData = [
- { name: "Alabama", capital: "Montgomery" },
- { name: "Alaska", capital: "Juneau" },
- { name: "Arizona", capital: "Phoenix" },
- // ...
- ];
-
- $(function() {
- $("#tileViewContainer").dxTileView({
- dataSource: tileViewData,
- itemTemplate: function (itemData, itemIndex, itemElement) {
- itemElement.addClass("tile");
- itemElement.append(
- "" + itemData.name + "
",
- "Capital: " + itemData.capital + "
"
- )
- }
- });
- });
-
- .tile {
- border-radius: .5em;
- text-align: center;
- color: white;
- background: gray;
- }
-
----
-
-You can also customize individual tiles. In Angular, Vue, and React, declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component. When using jQuery, you can declare the tiles as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/items/#template') property or assign a customization function straight to this property.
-
----
-##### jQuery
+You can also customize individual tiles. Declare them as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTabs/Configuration/items/#template') property or assign a customization function straight to this property.
@@ -288,6 +283,8 @@ You can also customize individual tiles. In Angular, Vue, and React, declare the
##### Angular
+You can also customize individual tiles. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -314,6 +311,8 @@ You can also customize individual tiles. In Angular, Vue, and React, declare the
##### Vue
+You can also customize individual tiles. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -344,6 +343,8 @@ You can also customize individual tiles. In Angular, Vue, and React, declare the
##### React
+You can also customize individual tiles. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
@@ -368,7 +369,7 @@ You can also customize individual tiles. In Angular, Vue, and React, declare the
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#include common-demobutton-named with {
url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/TileView/ItemTemplate/",
diff --git a/concepts/05 UI Components/TileView/Demos.md b/concepts/05 UI Components/TileView/Demos.md
new file mode 100644
index 0000000000..5a37513db4
--- /dev/null
+++ b/concepts/05 UI Components/TileView/Demos.md
@@ -0,0 +1,6 @@
+#include demos-intro
+
+- [Basics](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TileView/Basics/)
+- [Directions](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TileView/Directions/)
+- [Item Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TileView/ItemTemplate/)
+- [Item 3rd-Party Engine Template](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TileView/Item3RdPartyEngineTemplate/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Toast/05 Show and Hide the Toast/01 API.md b/concepts/05 UI Components/Toast/05 Show and Hide the Toast/01 API.md
index c23b3f082d..5a3d86ee9d 100644
--- a/concepts/05 UI Components/Toast/05 Show and Hide the Toast/01 API.md
+++ b/concepts/05 UI Components/Toast/05 Show and Hide the Toast/01 API.md
@@ -1,5 +1,8 @@
[note] In this article, the [Button](/api-reference/10%20UI%20Components/dxButton '/Documentation/ApiReference/UI_Components/dxButton/') UI component is used to demonstrate how to show and hide the Toast. This choice is made for purely demonstrational purposes, and you can do the same operations using another UI component following the same guidelines.
+---
+##### jQuery
+
To show or hide the Toast programmatically, call the [show()](/api-reference/10%20UI%20Components/dxToast/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxToast/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxToast/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxToast/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Toast, respectively.
$(function() {
@@ -12,17 +15,16 @@ To show or hide the Toast programmatically, call the [show()](/api-reference/10%
text: "Show the Toast",
onClick: function () {
$("#toastContainer").dxToast("show");
- // ---------- or ----------
+ // or
$("#toastContainer").dxToast("toggle", true);
}
});
});
-With Angular, Vue, or React, use a different technique. Bind the [visible](/api-reference/10%20UI%20Components/dxOverlay/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxToast/Configuration/#visible') property of the Toast UI component to a component property. After that, change this property, and the Toast will appear or disappear.
-
----
##### Angular
+To show or hide the Toast programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxOverlay/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxToast/Configuration/#visible') property of the Toast to a component property. After that, change the latter property, and the Toast will appear or disappear.
+
const hiddenEventHandler1 = function (e) {
@@ -152,6 +154,8 @@ If you are going to change event handlers at runtime, or if you need to attach s
.on("hidden", hiddenEventHandler1)
.on("hidden", hiddenEventHandler2);
+---
+
#####See Also#####
#include common-link-handleevents
- [Toast - Customize the Content](/concepts/05%20UI%20Components/Toast/10%20Customize%20the%20Content.md '/Documentation/Guide/UI_Components/Toast/Customize_the_Content/')
diff --git a/concepts/05 UI Components/Toast/Demos.md b/concepts/05 UI Components/Toast/Demos.md
new file mode 100644
index 0000000000..4e0c2759c1
--- /dev/null
+++ b/concepts/05 UI Components/Toast/Demos.md
@@ -0,0 +1,4 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Toast/Overview/)
+- [Stack](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Toast/Stack/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Toolbar/15 Customize Item Appearance.md b/concepts/05 UI Components/Toolbar/15 Customize Item Appearance.md
index 2a40d9bca7..77406f5a1d 100644
--- a/concepts/05 UI Components/Toolbar/15 Customize Item Appearance.md
+++ b/concepts/05 UI Components/Toolbar/15 Customize Item Appearance.md
@@ -167,9 +167,27 @@ For a minor customization of Toolbar items, you can define [specific fields](/ap
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#itemTemplate') and [menuItemTemplate](/api-reference/10%20UI%20Components/dxToolbar/1%20Configuration/menuItemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#menuItemTemplate') to customize toolbar items and commands in the overflow menu, respectively. In Angular and Vue, you can declare the templates in the markup. In React, you can use rendering functions (shown in the code below) or components.
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#itemTemplate') and [menuItemTemplate](/api-reference/10%20UI%20Components/dxToolbar/1%20Configuration/menuItemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#menuItemTemplate') to customize toolbar items and commands in the overflow menu, respectively.
---
+##### jQuery
+
+
+ $(function() {
+ $("#toolbarContainer").dxToolbar({
+ items: toolbarItems,
+ itemTemplate: function(itemData, itemIndex, itemElement) {
+ itemElement.append("" + itemData.text + "");
+ },
+ menuItemTemplate: function(itemData, itemIndex, itemElement) {
+ itemElement.append("" + itemData.text + "");
+ }
+ });
+ });
+
+
+
+
##### Angular
@@ -306,36 +324,11 @@ If you need a more flexible solution, define an [itemTemplate](/api-reference/10
---
-If you use jQuery, use DOM manipulation methods to combine the HTML markup. To apply this markup to toolbar items and commands in the overflow menu, use the [itemTemplate](/api-reference/10%20UI%20Components/CollectionWidget/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#itemTemplate') and [menuItemTemplate](/api-reference/10%20UI%20Components/dxToolbar/1%20Configuration/menuItemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/#menuItemTemplate') callback functions, respectively.
-
---
-
##### jQuery
-
- $(function() {
- $("#toolbarContainer").dxToolbar({
- items: toolbarItems,
- itemTemplate: function(itemData, itemIndex, itemElement) {
- itemElement.append("" + itemData.text + "");
- },
- menuItemTemplate: function(itemData, itemIndex, itemElement) {
- itemElement.append("" + itemData.text + "");
- }
- });
- });
-
-
-
-
----
-
You can also customize an individual toolbar item or menu command. For this purpose, declare a template for this item or command as a script and pass its `id` to the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/items/#template') or [menuItemTemplate](/api-reference/_hidden/dxToolbarItem/menuItemTemplate.md '/Documentation/ApiReference/UI_Components/dxToolbar/Configuration/items/#menuItemTemplate') property, respectively.
----
-
-##### jQuery
-
var toolbarItems = [{
text: "Back",
@@ -360,7 +353,7 @@ You can also customize an individual toolbar item or menu command. For this purp
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#####See Also#####
- [Toolbar - Specify Item Type](/concepts/05%20UI%20Components/Toolbar/05%20Specify%20Item%20Type.md '/Documentation/Guide/UI_Components/Toolbar/Specify_Item_Type')
diff --git a/concepts/05 UI Components/Toolbar/Demos.md b/concepts/05 UI Components/Toolbar/Demos.md
new file mode 100644
index 0000000000..6b90b3bcf0
--- /dev/null
+++ b/concepts/05 UI Components/Toolbar/Demos.md
@@ -0,0 +1,4 @@
+#include demos-intro
+
+- [Overview](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Toolbar/Overview/)
+- [Adaptability](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Toolbar/Adaptability/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/Tooltip/05 Show and Hide the Tooltip/05 API.md b/concepts/05 UI Components/Tooltip/05 Show and Hide the Tooltip/05 API.md
index 6e008896b0..be0ac1692d 100644
--- a/concepts/05 UI Components/Tooltip/05 Show and Hide the Tooltip/05 API.md
+++ b/concepts/05 UI Components/Tooltip/05 Show and Hide the Tooltip/05 API.md
@@ -1,10 +1,10 @@
[note] In this article, the [Button](/api-reference/10%20UI%20Components/dxButton '/Documentation/ApiReference/UI_Components/dxButton/') UI component is used to demonstrate how to show and hide the Tooltip. This choice is made for purely demonstrational purposes, and you can do the same operations using another UI component following the same guidelines.
-To show or hide the Tooltip programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Tooltip, respectively.
-
---
##### jQuery
+To show or hide the Tooltip programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Tooltip, respectively.
+
$(function() {
$("#tooltipContainer").dxTooltip({
target: "#image",
@@ -41,6 +41,8 @@ To show or hide the Tooltip programmatically, call the [show()](/api-reference/1
##### ASP.NET MVC Controls
+To show or hide the Tooltip programmatically, call the [show()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/show().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#show') or [hide()](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/hide().md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#hide') method. The same thing can be done using the [toggle(showing)](/api-reference/10%20UI%20Components/dxOverlay/3%20Methods/toggle(showing).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#toggleshowing') method. Pass **true** or **false** to this method to show or hide the Tooltip, respectively.
+
@(Html.DevExtreme().Tooltip()
.ID("tooltip")
@@ -79,11 +81,11 @@ To show or hide the Tooltip programmatically, call the [show()](/api-reference/1
---
-The **show()** method called without arguments shows the Tooltip for the [target specified beforehand](/api-reference/10%20UI%20Components/dxPopover/1%20Configuration/target.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#target'). If you need to change the target once, call the [show(target)](/api-reference/10%20UI%20Components/dxPopover/3%20Methods/show(target).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#showtarget') method.
-
---
##### jQuery
+The **show()** method called without arguments shows the Tooltip for the [target specified beforehand](/api-reference/10%20UI%20Components/dxPopover/1%20Configuration/target.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#target'). If you need to change the target once, call the [show(target)](/api-reference/10%20UI%20Components/dxPopover/3%20Methods/show(target).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#showtarget') method.
+
$(function() {
// ...
$("#showButton").dxButton({
@@ -96,6 +98,8 @@ The **show()** method called without arguments shows the Tooltip for the [target
##### ASP.NET MVC Controls
+The **show()** method called without arguments shows the Tooltip for the [target specified beforehand](/api-reference/10%20UI%20Components/dxPopover/1%20Configuration/target.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#target'). If you need to change the target once, call the [show(target)](/api-reference/10%20UI%20Components/dxPopover/3%20Methods/show(target).md '/Documentation/ApiReference/UI_Components/dxTooltip/Methods/#showtarget') method.
+
// ...
@@ -108,11 +112,11 @@ The **show()** method called without arguments shows the Tooltip for the [target
---
-With Angular, Vue, or React, use a different technique. Bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#visible') property of the Tooltip UI component to a component property. After that, change this component property, and the Tooltip will appear or disappear.
-
---
##### Angular
+To show or hide the Tooltip programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#visible') property of the Tooltip to a component property. After that, change this component property, and the Tooltip will appear or disappear.
+
@@ -197,6 +203,8 @@ With Angular, Vue, or React, use a different technique. Bind the [visible](/api-
##### React
+To show or hide the Tooltip programmatically, bind the [visible](/api-reference/10%20UI%20Components/dxPopup/1%20Configuration/visible.md '/Documentation/ApiReference/UI_Components/dxTooltip/Configuration/#visible') property of the Tooltip to a state property. After that, change this state property, and the Tooltip will appear or disappear.
+
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
diff --git a/concepts/05 UI Components/Tooltip/Demos.md b/concepts/05 UI Components/Tooltip/Demos.md
new file mode 100644
index 0000000000..cc3f6d4adb
--- /dev/null
+++ b/concepts/05 UI Components/Tooltip/Demos.md
@@ -0,0 +1,3 @@
+#include demos-intro
+
+- [Tooltip](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tooltip/Overview/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/TreeList/10 Columns/20 Column Sizing.md b/concepts/05 UI Components/TreeList/10 Columns/20 Column Sizing.md
index 37b13e840e..6d0098936b 100644
--- a/concepts/05 UI Components/TreeList/10 Columns/20 Column Sizing.md
+++ b/concepts/05 UI Components/TreeList/10 Columns/20 Column Sizing.md
@@ -260,7 +260,7 @@ The UI component allows a user to resize columns in two different modes: by chan
---
#include common-demobutton with {
- url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tree_List/Resizing/AngularJS/Light/"
+ url: "https://js.devexpress.com/Demos/WidgetsGallery/Demo/Tree_List/Resizing/"
}
#####See Also#####
diff --git a/concepts/05 UI Components/TreeList/10 Columns/40 Customize Cells/2 Customize the Appearance.md b/concepts/05 UI Components/TreeList/10 Columns/40 Customize Cells/2 Customize the Appearance.md
index ca22351b32..c1acc80828 100644
--- a/concepts/05 UI Components/TreeList/10 Columns/40 Customize Cells/2 Customize the Appearance.md
+++ b/concepts/05 UI Components/TreeList/10 Columns/40 Customize Cells/2 Customize the Appearance.md
@@ -1,7 +1,22 @@
-To customize cell appearance, use a column's [cellTemplate](/api-reference/_hidden/dxTreeListColumn/cellTemplate.md '/Documentation/ApiReference/UI_Components/dxTreeList/Configuration/columns/#cellTemplate'). In Angular and Vue, you can declare the template in the markup. In React, you can use a rendering function (shown in the code below) or component:
+To customize cell appearance, use a column's [cellTemplate](/api-reference/_hidden/dxTreeListColumn/cellTemplate.md '/Documentation/ApiReference/UI_Components/dxTreeList/Configuration/columns/#cellTemplate').
---
+##### jQuery
+
+ $(function() {
+ $("#treeListContainer").dxTreeList({
+ // ...
+ columns: [{
+ dataField: "Title",
+ cellTemplate: function(element, info) {
+ element.append("
" + info.text + "
")
+ .css("color", "blue");
+ }
+ }]
+ });
+ });
+
##### Angular
@@ -82,27 +97,6 @@ To customize cell appearance, use a column's [cellTemplate](/api-reference/_hidd
---
-If you use jQuery alone, use
DOM manipulation methods to combine the HTML markup for cells. To apply this markup, use the **cellTemplate** function as shown in the following code:
-
----
-##### jQuery
-
-
- $(function() {
- $("#treeListContainer").dxTreeList({
- // ...
- columns: [{
- dataField: "Title",
- cellTemplate: function(element, info) {
- element.append("
" + info.text + "
")
- .css("color", "blue");
- }
- }]
- });
- });
-
----
-
While **cellTemplate** customizes data cells only, the [onCellPrepared](/api-reference/10%20UI%20Components/dxTreeList/1%20Configuration/onCellPrepared.md '/Documentation/ApiReference/UI_Components/dxTreeList/Configuration/#onCellPrepared') function can customize any cell. Unlike **cellTemplate**, this function does customizations after a cell is created, so you cannot use it to change the cell value. Check the [rowType](/api-reference/10%20UI%20Components/dxTreeList/6%20Row/rowType.md '/Documentation/ApiReference/UI_Components/dxTreeList/Row/#rowType') field of the function's argument to detect the UI element that owns the cell.
---
diff --git a/concepts/05 UI Components/TreeList/20 Editing/20 API/30 Delete.md b/concepts/05 UI Components/TreeList/20 Editing/20 API/30 Delete.md
index b945742079..795a454f89 100644
--- a/concepts/05 UI Components/TreeList/20 Editing/20 API/30 Delete.md
+++ b/concepts/05 UI Components/TreeList/20 Editing/20 API/30 Delete.md
@@ -226,6 +226,7 @@ Note that in the [batch mode](/concepts/05%20UI%20Components/TreeList/20%20Editi
}
}
export default App;
+
---
#####See Also#####
diff --git a/concepts/05 UI Components/TreeList/Demos.md b/concepts/05 UI Components/TreeList/Demos.md
new file mode 100644
index 0000000000..f005c5a72a
--- /dev/null
+++ b/concepts/05 UI Components/TreeList/Demos.md
@@ -0,0 +1,47 @@
+#include demos-intro
+
+**Data Binding**
+
+- [Simple Array: Plain Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/SimpleArrayPlainStructure/)
+- [Simple Array: Hierarchical Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/SimpleArrayHierarchicalStructure/)
+- [Load Data on Demand](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/LoadDataOnDemand/)
+- [Web API Service](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/WebAPIService/)
+
+**Editing**
+
+- [Row Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/RowEditing/)
+- [Cell Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/CellEditing/)
+- [Batch Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/BatchEditing/)
+- [Form Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/FormEditing/)
+- [Popup Editing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/PopupEditing/)
+- [Customize Keyboard Navigation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/CustomizeKeyboardNavigation/)
+
+**Selection**
+
+- [Single Row Selection](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/SingleRowSelection/)
+- [Multiple Row Selection](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/MultipleRowSelection/)
+
+**Filtering**
+
+- [Using Search Panel](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/UsingSearchPanel/)
+- [Using Filter Row](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/UsingFilterRow/)
+- [Using Header Filter](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/UsingHeaderFilter/)
+- [Filter Panel](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/FilterPanel/)
+- [Filter Modes](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/FilterModes/)
+
+**Column Customization**
+
+- [Column Chooser](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/ColumnChooser/)
+- [Column Reordering](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/Reordering/)
+- [Column Resizing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/Resizing/)
+- [Column Fixing](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/ColumnFixing/)
+
+**More Features**
+
+- [Sorting](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/MultipleSorting/)
+- [Paging](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/Paging/)
+- [Node Drag & Drop](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/LocalReordering/)
+- [Focused Row](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/FocusedRow/)
+- [State Persistence](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/StatePersistence/)
+- [Adaptability](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/Adaptability/)
+- [Keyboard Navigation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeList/KeyboardNavigation/)
diff --git a/concepts/05 UI Components/TreeMap/Demos.md b/concepts/05 UI Components/TreeMap/Demos.md
new file mode 100644
index 0000000000..15644593cd
--- /dev/null
+++ b/concepts/05 UI Components/TreeMap/Demos.md
@@ -0,0 +1,7 @@
+#include demos-intro
+
+- [Hierarchical Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/HierarchicalDataStructure/)
+- [Plain Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/FlatDataStructure/)
+- [Tiling Algorithms](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/TilingAlgorithms/)
+- [Colorization](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/Colorization/)
+- [Drill Down](https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/DrillDown/)
\ No newline at end of file
diff --git a/concepts/05 UI Components/TreeView/30 Customize Node Appearance.md b/concepts/05 UI Components/TreeView/30 Customize Node Appearance.md
index e354a4990e..755c10207b 100644
--- a/concepts/05 UI Components/TreeView/30 Customize Node Appearance.md
+++ b/concepts/05 UI Components/TreeView/30 Customize Node Appearance.md
@@ -147,9 +147,20 @@ For minor customization of nodes, you can define [specific fields](/api-referenc
---
-If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxTreeView/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTreeView/Configuration/#itemTemplate'). In Angular and Vue, you can declare it in the markup. In React, you can use a rendering function (shown in the code below) or component:
+If you need a more flexible solution, define an [itemTemplate](/api-reference/10%20UI%20Components/dxTreeView/1%20Configuration/itemTemplate.md '/Documentation/ApiReference/UI_Components/dxTreeView/Configuration/#itemTemplate').
---
+##### jQuery
+
+ $(function() {
+ $("#treeViewContainer").dxTreeView({
+ dataSource: treeViewData,
+ itemTemplate: function (itemData, itemIndex, itemElement) {
+ itemElement.append("
" + itemData.text + "");
+ }
+ });
+ });
+
##### Angular
DOM manipulation methods to combine the HTML markup for nodes. To apply this markup, use the **itemTemplate** callback function as shown in the following code:
+---
+##### jQuery
- $(function() {
- $("#treeViewContainer").dxTreeView({
- dataSource: treeViewData,
- itemTemplate: function (itemData, itemIndex, itemElement) {
- itemElement.append("" + itemData.text + "");
- }
- });
- });
+You can also customize individual nodes. Declare them as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTreeView/Configuration/items/#template') property or assign a customization function straight to this property.
-You can also customize individual nodes. In Angular, Vue, and React, declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component. When using jQuery, you can declare the nodes as scripts and reference them in the [template](/api-reference/_hidden/CollectionWidgetItem/template.md '/Documentation/ApiReference/UI_Components/dxTreeView/Configuration/items/#template') property or assign a customization function straight to this property.
+
+
+
+
+
+ var treeViewData = [{
+ id: '1',
+ text: 'Fruits',
+ items: [{
+ template: function() {
+ return "Apples";
+ }
+ }, {
+ template: $("#individualItemTemplate")
+ }
+ ]
+ },
+ // ...
+ ];
----
##### Angular
+You can also customize individual nodes. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -319,6 +345,8 @@ You can also customize individual nodes. In Angular, Vue, and React, declare the
##### Vue
+You can also customize individual nodes. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
@@ -349,6 +377,8 @@ You can also customize individual nodes. In Angular, Vue, and React, declare the
##### React
+You can also customize individual nodes. Declare them using the [dxItem](/api-reference/10%20UI%20Components/Markup%20Components/dxItem '/Documentation/ApiReference/UI_Components/Markup_Components/dxItem/') component.
+
import React from 'react';
@@ -373,33 +403,9 @@ You can also customize individual nodes. In Angular, Vue, and React, declare the
export default App;
-##### jQuery
-
-
-
-
-
-
- var treeViewData = [{
- id: '1',
- text: 'Fruits',
- items: [{
- template: function() {
- return "Apples";
- }
- }, {
- template: $("#individualItemTemplate")
- }
- ]
- },
- // ...
- ];
-
---
-In addition, you can use a 3rd-party template engine to customize UI component appearance. For more information, see the [3rd-Party Template Engines](/concepts/05%20UI%20Components/zz%20Common/30%20Templates/30%203rd-Party%20Template%20Engines.md '/Documentation/Guide/UI_Components/Common/Templates/#3rd-Party_Template_Engines') article.
+
#####See Also#####
- [Built-In Icon Library](/concepts/60%20Themes%20and%20Styles/30%20Icons/10%20Built-In%20Icon%20Library.md '/Documentation/Guide/Themes_and_Styles/Icons/#Built-In_Icon_Library')
diff --git a/concepts/05 UI Components/TreeView/Demos.md b/concepts/05 UI Components/TreeView/Demos.md
new file mode 100644
index 0000000000..a6e202677e
--- /dev/null
+++ b/concepts/05 UI Components/TreeView/Demos.md
@@ -0,0 +1,11 @@
+#include demos-intro
+
+- [Hierarchical Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/HierarchicalDataStructure/)
+- [Plain Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/FlatDataStructure/)
+- [Node Selection and Customization](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/ItemSelectionAndCustomization/)
+- [Virtual Mode](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/VirtualMode/)
+- [Load Data on Demand](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/LoadDataOnDemand/)
+- [TreeView with Search Bar](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/TreeViewWithSearchBar/)
+- [Context Menu Integration](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/ContextMenuIntegration/)
+- [Drag & Drop for Plain Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/DragAndDropPlainDataStructure/)
+- [Drag & Drop for Hierarchical Data Structure](https://js.devexpress.com/Demos/WidgetsGallery/Demo/TreeView/DragAndDropHierarchicalDataStructure/)
diff --git a/concepts/05 UI Components/VectorMap/Demos.md b/concepts/05 UI Components/VectorMap/Demos.md
new file mode 100644
index 0000000000..8ebc3c4a9a
--- /dev/null
+++ b/concepts/05 UI Components/VectorMap/Demos.md
@@ -0,0 +1,16 @@
+#include demos-intro
+
+- [Colors Customization](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/ColorsCustomization/)
+- [Zooming and Centering](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/ZoomingAndCentering/)
+- [Palette](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/Palette/)
+- [Image Markers](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/ImageMarkers/)
+- [Bubble Markers](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/BubbleMarkers/)
+- [Pie Markers](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/PieMarkers/)
+- [Dynamic Viewport](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/DynamicViewport/)
+- [Area with Labels and Two Legends](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/AreaWithLabelsAndTwoLegends/)
+- [Tooltips: HTML Markup Support](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/TooltipHTMLSupport/)
+- [Custom Projection](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/CustomProjection/)
+- [Floor Plan](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/FloorPlan/)
+- [Multiple Layers](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/MultipleLayers/)
+- [Custom Map Data](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/CustomMapData/)
+- [Custom Annotations](https://js.devexpress.com/Demos/WidgetsGallery/Demo/VectorMap/CustomAnnotations/)
diff --git a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/10 Validate an Editor Value.md b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/10 Validate an Editor Value.md
index 9127c589cc..5cc9416d05 100644
--- a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/10 Validate an Editor Value.md
+++ b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/10 Validate an Editor Value.md
@@ -69,41 +69,6 @@ Associate a DevExtreme editor with the [Validator](/api-reference/10%20UI%20Comp
})
export class AppModule { }
-##### AngularJS
-
- function Controller ($scope) {
- $scope.login = '';
- $scope.loginRules = [{
- type: 'required'
- }, {
- type: 'pattern',
- pattern: '^[a-zA-Z]+$',
- message: 'Do not use digits.'
- }];
- }
-
-
-
-
-##### Knockout
-
- var viewModel = {
- login: ko.observable(""),
- loginRules: [{
- type: 'required'
- }, {
- type: 'pattern',
- pattern: '^[a-zA-Z]+$',
- message: 'Do not use digits.'
- }]
- };
- ko.applyBindings(viewModel);
-
-
-
-
##### Vue
diff --git a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/1 Group the Editors.md b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/1 Group the Editors.md
index a9b826b034..711bc21d5c 100644
--- a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/1 Group the Editors.md
+++ b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/1 Group the Editors.md
@@ -75,30 +75,6 @@ Editors belonging to a single **Validation Group** can be validated together. Al
})
export class AppModule { }
-##### AngularJS
-
-
-
-
-##### Knockout
-
-
-
-
##### Vue
diff --git a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/2 Validate the Group.md b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/2 Validate the Group.md
index 306b9d2beb..04d8f47a29 100644
--- a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/2 Validate the Group.md
+++ b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/2 Validate the Group.md
@@ -102,63 +102,6 @@ Call a group's [validate()](/api-reference/10%20UI%20Components/dxValidator/3%20
})
export class AppModule { }
-##### AngularJS
-
-
-
-
-
-
-
-
-
-
-
- function Controller($scope) {
- // ...
- $scope.loginClick = function (e) {
- var result = e.validationGroup.validate();
- if (result.isValid) {
- // ...
- }
- };
- }
-
-##### Knockout
-
-
-
-
-
-
-
-
@@ -388,6 +334,8 @@ Alternatively, you can use the [DevExpress.validationEngine.validateGroup](/api-
##### Vue
+Alternatively, you can get a group's instance and call its [validate](/api-reference/10%20UI%20Components/dxValidationGroup/3%20Methods/validate().md '/Documentation/ApiReference/UI_Components/dxValidationGroup/Methods/#validate') method to validate this group:
+
@@ -447,6 +395,8 @@ Alternatively, you can use the [DevExpress.validationEngine.validateGroup](/api-
##### React
+Alternatively, you can get a group's instance and call its [validate](/api-reference/10%20UI%20Components/dxValidationGroup/3%20Methods/validate().md '/Documentation/ApiReference/UI_Components/dxValidationGroup/Methods/#validate') method to validate this group:
+
import React from 'react';
diff --git a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/3 Display Validation Errors.md b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/3 Display Validation Errors.md
index aea138f092..f733836808 100644
--- a/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/3 Display Validation Errors.md
+++ b/concepts/05 UI Components/zz Common/05 UI Widgets/20 Data Validation/20 Validate Several Editor Values/3 Display Validation Errors.md
@@ -48,21 +48,6 @@ All group validation errors can be displayed in the [ValidationSummary](/api-ref
})
export class AppModule { }
-##### AngularJS
-
-
-
- ...
-
-
-
-##### Knockout
-
-
-
-
-
-
##### Vue
diff --git a/concepts/05 UI Components/zz Common/30 Templates/05 Default Templates.md b/concepts/05 UI Components/zz Common/30 Templates/05 Default Templates.md
index 3b52b9cb07..e749258b59 100644
--- a/concepts/05 UI Components/zz Common/30 Templates/05 Default Templates.md
+++ b/concepts/05 UI Components/zz Common/30 Templates/05 Default Templates.md
@@ -54,41 +54,6 @@ You can achieve the same in the markup using the [dxItem](/api-reference/10%20UI
})
export class AppModule { }
-#####AngularJS
-
-
-
-
-
- angular.module('DemoApp', ['dx'])
- .controller('DemoController', function ($scope) {
- // ...
- });
-
-#####Knockout
-
-
-
-
-
- var viewModel = {
- // ...
- };
-
- ko.applyBindings(viewModel);
-
##### Vue
diff --git a/concepts/34 ASP.NET MVC Controls/10 Prerequisites and Installation/Prerequisites and Installation.md b/concepts/34 ASP.NET MVC Controls/10 Prerequisites and Installation/Prerequisites and Installation.md
index 628178187b..58e6b54fb9 100644
--- a/concepts/34 ASP.NET MVC Controls/10 Prerequisites and Installation/Prerequisites and Installation.md
+++ b/concepts/34 ASP.NET MVC Controls/10 Prerequisites and Installation/Prerequisites and Installation.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400702/?v=22.2",
core: "https://docs.devexpress.com/AspNetCore/401026/?v=22.2"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/20 Fundamentals/Fundamentals.md b/concepts/34 ASP.NET MVC Controls/20 Fundamentals/Fundamentals.md
index 773a18f5ae..6b58e2a254 100644
--- a/concepts/34 ASP.NET MVC Controls/20 Fundamentals/Fundamentals.md
+++ b/concepts/34 ASP.NET MVC Controls/20 Fundamentals/Fundamentals.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400703/?v=22.2",
core: "https://docs.devexpress.com/AspNetCore/400574/?v=22.2"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/30 Data Binding/Data Binding.md b/concepts/34 ASP.NET MVC Controls/30 Data Binding/Data Binding.md
index 6038b3d752..bb7e83556a 100644
--- a/concepts/34 ASP.NET MVC Controls/30 Data Binding/Data Binding.md
+++ b/concepts/34 ASP.NET MVC Controls/30 Data Binding/Data Binding.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400704/?v=22.2",
core: "https://docs.devexpress.com/AspNetCore/400575/?v=22.2"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/01 Overview.md b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/01 Overview.md
index 83dae80fe6..66222c7079 100644
--- a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/01 Overview.md
+++ b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/01 Overview.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400705/?v=22.2",
core: "https://docs.devexpress.com/AspNetCore/400576/?v=22.2"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/05 Validate a Group of Editors.md b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/05 Validate a Group of Editors.md
index c08d67b8a1..70877d176a 100644
--- a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/05 Validate a Group of Editors.md
+++ b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/05 Validate a Group of Editors.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400705/?v=22.2#validate-a-group-of-editors",
core: "https://docs.devexpress.com/AspNetCore/400576/?v=22.2#validate-a-group-of-editors"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/20 Implement a Custom Validation Rule.md b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/20 Implement a Custom Validation Rule.md
index 27d563a351..fb52e3099c 100644
--- a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/20 Implement a Custom Validation Rule.md
+++ b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/20 Implement a Custom Validation Rule.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400705/?v=22.2#implement-a-custom-validation-rule",
core: "https://docs.devexpress.com/AspNetCore/400576/?v=22.2#implement-a-custom-validation-rule"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/25 Validate and Submit an HTML Form.md b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/25 Validate and Submit an HTML Form.md
index 33f42d7f5c..1ef3628862 100644
--- a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/25 Validate and Submit an HTML Form.md
+++ b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/25 Validate and Submit an HTML Form.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400705/?v=22.2#validate-and-submit-an-html-form",
core: "https://docs.devexpress.com/AspNetCore/400576/?v=22.2#validate-and-submit-an-html-form"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/28 Validate and Submit the Form Control.md b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/28 Validate and Submit the Form Control.md
index 3cff7f4c55..b2b763c58d 100644
--- a/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/28 Validate and Submit the Form Control.md
+++ b/concepts/34 ASP.NET MVC Controls/35 Client-Side Data Validation/28 Validate and Submit the Form Control.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400705/?v=22.2#validate-and-submit-the-form-control",
core: "https://docs.devexpress.com/AspNetCore/400576/?v=22.2#validate-and-submit-the-form-control"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/38 Localization/10 Using Intl.md b/concepts/34 ASP.NET MVC Controls/38 Localization/10 Using Intl.md
index f136649613..97302cb923 100644
--- a/concepts/34 ASP.NET MVC Controls/38 Localization/10 Using Intl.md
+++ b/concepts/34 ASP.NET MVC Controls/38 Localization/10 Using Intl.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400706/?v=22.2#intl",
core: "https://docs.devexpress.com/AspNetCore/400577/?v=22.2#intl"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/38 Localization/20 Using Globalize.md b/concepts/34 ASP.NET MVC Controls/38 Localization/20 Using Globalize.md
index b59a1815b4..72a4a0ddb3 100644
--- a/concepts/34 ASP.NET MVC Controls/38 Localization/20 Using Globalize.md
+++ b/concepts/34 ASP.NET MVC Controls/38 Localization/20 Using Globalize.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400706/?v=22.2#globalize",
core: "https://docs.devexpress.com/AspNetCore/400577/?v=22.2#globalize"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/01 Project Templates.md b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/01 Project Templates.md
index c9ccfe8ef1..740b1197ab 100644
--- a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/01 Project Templates.md
+++ b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/01 Project Templates.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400702/?v=22.2#create-a-new-project-from-templates",
core: "https://docs.devexpress.com/AspNetCore/401026/?v=22.2#create-a-new-project-from-templates"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/05 Add or Upgrade the Required Resources in Your Project.md b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/05 Add or Upgrade the Required Resources in Your Project.md
index cbd47152e0..734ae1f910 100644
--- a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/05 Add or Upgrade the Required Resources in Your Project.md
+++ b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/05 Add or Upgrade the Required Resources in Your Project.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/400702/?v=22.2#add-devextreme-to-an-existing-project",
core: "https://docs.devexpress.com/AspNetCore/401026/?v=22.2#add-devextreme-to-an-existing-project"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/20 Scaffolding.md b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/20 Scaffolding.md
index 80acd36cd4..e4d12614d7 100644
--- a/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/20 Scaffolding.md
+++ b/concepts/34 ASP.NET MVC Controls/40 Visual Studio Integration/20 Scaffolding.md
@@ -2,3 +2,5 @@
mvc: "https://docs.devexpress.com/DevExtremeAspNetMvc/401327/?v=22.2",
core: "https://docs.devexpress.com/AspNetCore/401035/?v=22.2"
}
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/36 ASP.NET MVC 5.md b/concepts/36 ASP.NET MVC 5.md
index 60ca98e9d6..fc896a5883 100644
--- a/concepts/36 ASP.NET MVC 5.md
+++ b/concepts/36 ASP.NET MVC 5.md
@@ -1 +1,3 @@
Starting from v19.1, ASP.NET MVC 5 Controls documentation is available at
docs.devexpress.com.
+
+[tags] jquery
\ No newline at end of file
diff --git a/concepts/37 ASP.NET Core.md b/concepts/37 ASP.NET Core.md
index a73221dd48..1f146737db 100644
--- a/concepts/37 ASP.NET Core.md
+++ b/concepts/37 ASP.NET Core.md
@@ -1 +1,3 @@
Starting from v19.1, ASP.NET Core Controls documentation is available at
docs.devexpress.com.
+
+[tags] jquery
diff --git a/concepts/40 Angular Components/10 Getting Started/03 Add DevExtreme to an Angular CLI Application/03 Configure Stylesheets.md b/concepts/40 Angular Components/10 Getting Started/03 Add DevExtreme to an Angular CLI Application/03 Configure Stylesheets.md
index c6aa1450c9..0a7a11064e 100644
--- a/concepts/40 Angular Components/10 Getting Started/03 Add DevExtreme to an Angular CLI Application/03 Configure Stylesheets.md
+++ b/concepts/40 Angular Components/10 Getting Started/03 Add DevExtreme to an Angular CLI Application/03 Configure Stylesheets.md
@@ -35,6 +35,6 @@ Then, go to the `src` folder, open the `index.html` file, and add the `dx-viewpo
-[note] [SVG-based UI components](/concepts/60%20Themes%20and%20Styles/00%20HTML-%20and%20SVG-Based%20UI%20Components.md '/Documentation/Guide/Themes_and_Styles/HTML-_and_SVG-Based_UI_Components/') do not require theme stylesheets. If you choose to reference the stylesheets, the UI components apply an appearance that matches them.
+[note] [SVG-based UI components](/Documentation/Guide/Themes_and_Styles/Styling_Methods/) do not require theme stylesheets. If you choose to reference the stylesheets, the UI components apply an appearance that matches them.
[tags] theme
diff --git a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/04 Using Webpack/04 Import Stylesheets.md b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/04 Using Webpack/04 Import Stylesheets.md
index f1e302286f..02ff297a5a 100644
--- a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/04 Using Webpack/04 Import Stylesheets.md
+++ b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/04 Using Webpack/04 Import Stylesheets.md
@@ -4,4 +4,4 @@ Open the main `.ts` file and import a [predefined theme stylesheet](/concepts/60
// ...
import 'devextreme/dist/css/dx.light.css';
-[note] [SVG-based UI components](/concepts/60%20Themes%20and%20Styles/00%20HTML-%20and%20SVG-Based%20UI%20Components.md '/Documentation/Guide/Themes_and_Styles/HTML-_and_SVG-Based_UI_Components/') do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
+[note] [SVG-based UI components](/Documentation/Guide/Themes_and_Styles/Styling_Methods/) do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
diff --git a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/05 Using Ionic/05 Import Stylesheets.md b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/05 Using Ionic/05 Import Stylesheets.md
index 969b3bdaf1..a1d93ef5d5 100644
--- a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/05 Using Ionic/05 Import Stylesheets.md
+++ b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/05 Using Ionic/05 Import Stylesheets.md
@@ -3,4 +3,4 @@ Open the `global.scss` file in the `src` folder and import a [predefined theme s
@import '~devextreme/dist/css/dx.light.css';
-[note] [SVG-based UI components](/concepts/60%20Themes%20and%20Styles/00%20HTML-%20and%20SVG-Based%20UI%20Components.md '/Documentation/Guide/Themes_and_Styles/HTML-_and_SVG-Based_UI_Components/') do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
\ No newline at end of file
+[note] [SVG-based UI components](/Documentation/Guide/Themes_and_Styles/Styling_Methods/) do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
\ No newline at end of file
diff --git a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/06 Using Rollup/04 Import Stylesheets.md b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/06 Using Rollup/04 Import Stylesheets.md
index b4d8c6ceda..3b09453506 100644
--- a/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/06 Using Rollup/04 Import Stylesheets.md
+++ b/concepts/40 Angular Components/10 Getting Started/30 Other Approaches/06 Using Rollup/04 Import Stylesheets.md
@@ -24,4 +24,4 @@ To create a single CSS bundle, you can use the `rollup-plugin-css-only` package.
]
}
-[note] [SVG-based UI components](/concepts/60%20Themes%20and%20Styles/00%20HTML-%20and%20SVG-Based%20UI%20Components.md '/Documentation/Guide/Themes_and_Styles/HTML-_and_SVG-Based_UI_Components/') do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
+[note] [SVG-based UI components](/Documentation/Guide/Themes_and_Styles/Styling_Methods/) do not require theme stylesheets. If you choose to import the stylesheets, the UI components apply an appearance that matches them.
diff --git a/concepts/50 React Components/05 Add DevExtreme to a React Application/40 Import Stylesheets.md b/concepts/50 React Components/05 Add DevExtreme to a React Application/40 Import Stylesheets.md
index a6cf9baf2c..2db082b752 100644
--- a/concepts/50 React Components/05 Add DevExtreme to a React Application/40 Import Stylesheets.md
+++ b/concepts/50 React Components/05 Add DevExtreme to a React Application/40 Import Stylesheets.md
@@ -16,6 +16,6 @@ Then, go to the `public` folder, open the `index.html` file, and add the `dx-vie