为什么80%的码农都做不了架构师?>>>

数据网格插件。

包括:dx.web.js,dx.viz-web.js,dx.all.js

模块:ui/data_grid (保留链接)

dxdatagrid是一个小工具,可以代表一个网格形式的本地或远程存储数据。这个工具提供了大量的功能,包括排序,基本的分组,过滤,选择,以及更先进的功能,如状态存储、模板,各种类型的滚动。

您可以使用以下方法之一创建一个小部件。

jQuery

使用 dxDataGrid jQuery 插件。

<div id="gridContainer"></div>
$("#gridContainer").dxDataGrid({dataSource: customers,columns: ['CompanyName', 'City', 'State', 'Phone', 'Fax']
});

Knockout

添加一个DIV元素和应用的dxdatagrid绑定到该元素。

<div data-bind="dxDataGrid: {dataSource: customers,columns: ['CompanyName', 'City', 'State', 'Phone', 'Fax']
}"></div>

Angular

添加一个DIV元素和应用DX数据网格指令这个元素。

<div dx-data-grid="{dataSource: customers,columns: ['CompanyName', 'City', 'State', 'Phone', 'Fax']
}"></div>

注意,devextreme部件需要jQuery和全球化的库链接到您的应用程序。如果你使用的是敲除或角度的方法,淘汰赛或角库也需要。有关创建小部件的详细信息,并与他们一起工作,指的是与小部件的工作。

specify是数据源,为dxDataGrid widget提供数据,dxdatagrid接受两种类型的数据源:对象数组和一个数据源配置对象。要了解更多关于数据绑定在dxdatagrid,指的是数据绑定指南。

开始教程 :http://js.devexpress.com/Documentation/Tutorial/UI_Widgets/Configure_DataGrid/?version=16_1#Configure_DataGrid

查看演示:

观看视频:

配置

本节介绍dxDataGrid小部件的配置选项。

accessKey

指定将焦点集中在小部件元素上的快捷键键。
类型:String
默认值:null
设定快捷键的key值传递给小部件的实际HTML元素的accesskey属性。

activeStateEnabled

一个布尔值,指定与用户进行交互时小部件是否不改变其状态。
类型:Boolean
默认值:false
当显示的指导方针包括部件的工作状态变化的平台上的小部件使用此选项。

allowColumnReordering

指定是否格列可以由用户重新排序。
类型:Boolean
默认值:false

最初,网格列出现在由列数组指定的顺序。当没有指定此阵列,网格列具有相同的顺序从数据源的第一个对象的领域。您可以为用户提供的能力进行重新排序网格列。要启用此功能,设置allowColumnReordering选项设置为true。在此之后,网格列可以通过拖动它们的标题进行重新排序。

一旦启用,所有网格列可以通过拖放和拖放重新排序。如果您需要被重新排序限制特定的列,此列的allowReordering选项设置为false

可以通过切换的复选框来改变允许重新排序列选项的值。然后,尝试通过其标题拖动列,并在需要的地方删除它重新排序网格列

举个栗子:

<div style="height:300px" dx-data-grid="{dataSource: employees,columns: [{ dataField: 'TitleOfCourtesy', caption: 'Title' },'FirstName','LastName',{ dataField: 'Title', caption: 'Position', width: 150 },{ dataField: 'BirthDate', dataType: 'date', format: 'shortDate' },{ dataField: 'HireDate', dataType: 'date', format: 'shortDate' }],paging: { pageSize: 6 },bindingOptions: {allowColumnReordering: 'checkBoxState'}}">
</div>
$scope.employees = employees;
$scope.checkBoxState = true;

allowColumnResizing

指定是否格列可以由用户调整。
类型:Boolean
默认值:false

默认情况下,每个网格列的宽度是自动计算的,这取决于部件的容器的宽度和网格列的总数。要在代码中指定一个特定的列的宽度,使用列|宽度选项。您可以允许用户在运行时调整列宽。要启用此功能,设置allowColumnResizing选项设置为true。在这之后,每个网格列可以通过拖动其边框的大小。

一旦启用,列大小调整将允许所有网格列。如果你需要被调整限制特定的列,此列的allowResizing选项设置为false

举个栗子:

dx-data-grid="{dataSource: employees,columns: [{ dataField: 'TitleOfCourtesy', caption: 'Title' },'FirstName','LastName',{ dataField: 'Title', caption: 'Position', width: 150 },{ dataField: 'BirthDate', dataType: 'date', format: 'shortDate' },{ dataField: 'HireDate', dataType: 'date', format: 'shortDate' }],paging: { pageSize: 6 },bindingOptions: {allowColumnResizing: 'checkBoxState'}}"
$scope.employees = employees;
$scope.checkBoxState = true;

cacheEnabled

指定是否启用数据缓存。
类型:Boolean
默认值:True

当启用该选项,一旦加载数据被保存到缓存中,然后根据排序,分组,分页等缓存是有帮助的当数据源是非常大的,并采取显著时间来加载执行这种操作时电网使用此高速缓存。

要强制缓存更新,请使用refresh()方法或重新加载数据源。

考虑禁用此功能,如果您的网格显示当前的数据,你需要始终保持电网最新的。

注:如果您从服务器获取数据,对数据的一些操作可以远程执行,而其他人- 本地。如果执行基本操作(排序,筛选和分页),远程和先进操作(分组和汇总计算)局部,某些行动将迫使dxDataGrid反复查询数据的服务器尽管被启用高速缓存。例如,要全面重新加载来自服务器的高级操作需求数据,以提供正确的结果

cellHintEnabled

使得当用户在使用截断内容的单元格悬停鼠标指针时出现的提示。
类型:Boolean
默认值:True

如果小区的列的宽度变得非常小的小区的内容可以是截断。在这种情况下,当用户在这样的小区悬停鼠标指针,显示含有细胞的值的提示。要禁用电池的提示,假分配给cellHintEnabled选项。

columnAutoWidth

指定网格列的宽度是否依赖于列的内容。
类型:Boolean
默认值:FALSE

当此选项设置为true,每个网格列的宽度最适合举办本专栏的内容。在这种情况下,小部件的容器的宽度将被忽略。只要有一排的含量超过容器的宽度,此设置就可能会导致水平滚动条的出现。在这种情况下,考虑启用列固定。

当此选项设置为false,所有网格列具有相同的宽度,这是使用控件的容器的宽度计算。

如果网格列包含文本,那么该文本可以在超过列宽包裹。要启用自动换行,设置为true的wordWrapEnabled选项

举个栗子:

dx-data-grid="{dataSource: orders,columns: ['OrderID', 'CustomerID', 'EmployeeID',{ dataField: 'OrderDate', dataType: 'date', format: 'shortDate' },{ dataField: 'RequiredDate', dataType: 'date', format: 'shortDate' },{ dataField: 'ShippedDate', dataType: 'date', format: 'shortDate' },'ShipVia', 'Freight', 'ShipName', 'ShipAddress', 'ShipCity'],paging: { pageSize: 8 },bindingOptions: {columnAutoWidth: 'checkBoxState'}}"
$scope.checkBoxState = true;

columnChooser

高级技巧!简单来说,点击图标之后,出现一个弹窗区域,你可以把已经显示在页面上的的列拖动到弹窗区域,该列就被隐藏起来不显示了,把列从弹窗区域拖出来,该列重新显示在表格上
类型:Object

列选择器(columnChooser)是一个网格元素,允许用户隐藏特定的网格列。此元素表示当用户点击图标,或者当showColumnChooser()方法被调用时显示的面板。

使用该功能需要设置 allowHiding选项为true(允许拖动),以便用户可以将其拖到列选择面板。

默认情况下,列选择器(columnChooser)。要启用它,设置columnChooser为true启用该功能。使用该对象的宽度和高度选项,您可以定义列选择面板的大小。

此外,你可以自定义面板显示的文本为空时使用emptyPanelText选项,使用标题选项,在面板的标题中显示的文本

举个栗子:

dx-data-grid="{dataSource: books,columns: ['author', 'title', 'year', 'genre', 'format',{ dataField: 'price', visible: false },{ dataField: 'length', visible: false }],paging: { pageSize: 7 },columnChooser: {enabled: true,height: 180,width: 400,emptyPanelText: 'A place to hide the columns'}}"

emptyPanelText

指定当它不包含任何列的列选择面板中显示的文本。
类型:String
默认值:'这里拖动一列隐藏它'(此处翻译如此)
举例说明:

columnChooser: {enabled: true,emptyPanelText: 'A place to hide the columns'}

enabled

指定用户是否可以调用列选择。
类型:Boolean
默认值:FALSE
当此选项设置为true,用户可以通过点击在网格的右上角列选择。否则,这个按钮是隐藏的,但列选择仍然可以从代码中使用showColumnChooser()方法调用

举个栗子:

bindingOptions: {  'columnChooser.enabled': 'checkBoxState'}
$scope.checkBoxState = true;

height

指定列选择面板的高度。
类型:Number
默认值:260

举个栗子:

columnChooser: {enabled: true,height: 150}

mode

指定终端用户如何选择列。

类型:String
默认值:'dragAndDrop'
Accepted Values: 'dragAndDrop' | 'select'

在 dragAndDrop 模式,用户拖动列标题栏选择隐藏。在 select 模式,用户选择使用复选框中的列选择列标题。在这两种模式,对应的字段是否出现/消失在网格中。

当在启用触摸的设备上显示dxDataGrid,它是使用 select 模式更方便。然而,在鼠标配备的客户,两者都是适合的。
好吧,API中确实是这么写的,虽然我尝试了一下两种模式,并没有发现什么太大的差别。(Q A Q)

举个栗子:

bindingOptions: {'columnChooser.mode': 'selectedMode'}

title

指定列选择面板的标题显示的文本。
类型:String
默认值:“列选择”

举个栗子:

columnChooser: {enabled: true,title: 'Choose a Column'}

width

指定列选择器面板的宽度。
类型:Number
默认值:250

举个栗子:

columnChooser: {enabled: true,width: 400}

columnFixing

指定列固定选项。
类型:Object

当总列宽度比网格的容器的宽度更大,会出现水平滚动。这可能会发生在以下情况中:

  • 当所有列都有一个指定的宽度;
  • 当表格的columnAutoWidth选项设置为false

如果您需要特定的列在屏幕上显示,无论进行滚动,设置columnFixing|启用选项设置为true。在这种情况下,对于其中固定选项设置为真列将被固定到网格的边缘。例如,命令栏,包含复选框的人选择行或链接保存/删除行,因为他们的固定选项设置为true,将其固定。

您可以设定网格无边缘。要指定所需的边缘,使用列的fixedPosition选项

查看栗子:点击查看

enabled

表示是否列固定启用。
类型:Boolean
默认值:FALSE

当此选项设置为true,对于其中固定选项设置为true的列将被固定到网格的边缘。边缘是由列的fixedPosition选项中指定。此外,列上下文菜单将与柱延长fixing-related的命令使最终用户能够在运行时修复列。

注:此选项会自动设置为true时,至少有一个列具有固定选项设置为true

texts

包含指定的列标题的上下文菜单固定柱相关命令文本选项。
类型:Object
使用这些选项来为本地表格提供自定义列固定宽度

columnHidingEnabled (响应式布局)

指定窗口小部件是否应隐藏列以适应屏幕或容器的尺寸。
类型:Boolean
默认值:FALSE

在您的应用程序显示dxDataGrid,您可能需要使用不同的屏幕大小不同的布局。虽然台式电脑显示器提供了足够的空间来显示所有的列,手机屏幕没有。在这种情况下,您可以启用窗口小部件自动隐藏某些列,如果他们不适合屏幕大小。为了这个目的,分配真正的columnHidingEnabled选项。隐藏的列的信息仍然是可找到的。

也可以看看

  • hidingPriority - 决定列先隐藏其中。
  • onAdaptiveDetailRowPreparing - 允许您自定义自适应详细信息行

视频教程:点击查看

columns[]

网格列的数组。
类型:Array
缺省值:undefined

默认情况下,对于一个数据源对象的每个字段中创建一列,但在大多数情况下,它是多余的。要指定一组在网格中创建列,分配一个数组,指定这些列的列选项。每个网格列此数组中含有的列设置一个对象或该列绑定到数据源字段表示。关于指定网格列的详细信息,在指定网格列文章中给出。

列选项定义表格列的行为和外观。其中的其他功能允许您控制使用allowSorting和sortOrder选项列值的排序,应用过滤器使用allowFiltering和filterOperations选项网格记录,并使用allowGrouping和对groupIndex选项组网格记录。此外,您可以更改使用相应的选项中列的知名度和宽度。

要获取或设置在运行时列一个选项或多个选项,使用columnOption方法,并附上所需参数

查看栗子:

视频教程:

alignment

指定列单元格中的内容一致。
类型:String
缺省值:undefined
Accepted Values: undefined | 'left' | 'center' | 'right'

列内容默认取向取决于由该列所表示的数据的类型。下表说明了对于不同的数据类型的列对准的默认值

dataType alignment
'number' 'right'
'boolean' 'center'
'string' 'left'
'date' 'left'
'guid' 'left'

来看栗子:

<div ng-controller="demoController"><div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: employees,columns: columns}"></div>
</div>
$scope.columns = [{ dataField: 'TitleOfCourtesy', caption: 'Title' },{ dataField: 'FirstName', alignment: 'center' },{ dataField: 'LastName', alignment: 'center' },{ dataField: 'Title', caption: 'Position', width: 150 },{ dataField: 'BirthDate', dataType: 'date', format: 'shortDate' },{ dataField: 'HireDate', dataType: 'date', format: 'shortDate' }];

allowEditing

指定是否在一列中的值可以在运行时被编辑。设置这个选项使得只有当编辑一格启用感。
类型:Boolean
默认值:True
如果allowEditing选项设置为true,在该列中的值可以由最终用户进行编辑。如果将此选项设置为false,这些值不能编辑。

注:如果在一列中的值是使用calculateCellValue选项计算习惯,它们不能在运行时编辑。

也可以看看
有关如何指定dxDataGrid编辑设置,请参阅Editing in UI主题的更多信息

举个栗子:

dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 8 },editing: { allowUpdating: true }}"

allowFiltering

指定列是否可用于过滤格记录。设置这个选项只当过滤器的行和列标题过滤可见。

类型:Boolean
默认值:True
如果allowFiltering选项设置为true的列,对应于此列的筛选行的单元格被启用。用户可以使用该小区由列的值,以过滤格记录。通过过滤特定值的列标题滤波器提供变得可用。

也可以看看
有关如何指定dxDataGrid过滤设置,请参阅 Filtering in UI主题的更多信息

举个栗子:

$scope.columns = [{ dataField: 'OrderID', width: 100, filterOperations: [], selectedFilterOperation: '=' },{ dataField: 'CustomerID', allowFiltering: false },{ dataField: 'OrderDate', dataType: 'date' },{ dataField: 'ShippedDate', dataType: 'date' },'ShipName',{ dataField: 'ShipCountry', caption: 'Ship To' }];

allowFixing

指定列是否可以被固定到由最终用户的网格边缘。设置这个选项只在columnFixing启用选项设置为true的时候生效。

类型:Boolean
默认值:True

如果allowFixing选项设置为true为列,在列的上下文菜单的固定相关的命令都可用。从上下文菜单中隐藏这些命令,该列的allowFixing选项设置为false

allowGrouping

指定在此列的值,用户可以组数据。启用时分组仅适用。

类型:Boolean
默认值:True

当分组在小部件已启用,用户可以按任何列的值分组。从被用于分组禁止特定列,设置该栏allowGrouping选项为false

注:在与 calculated values一列时,此选项默认设置为false。

也可以看看

  • grouping | contextMenuEnabled - 使用户能够使用上下文菜单组的数据。
  • groupPanel | visible - 使用户能够使用组面板组数据。
  • groupPanel | allowColumnDragging - 允许使用拖放和拖放从组面板移到列标题/用户。
  • columns[] | groupIndex - 指定初始分组

举个栗子:

$scope.columns = [{ dataField: 'OrderID', allowGrouping: false },'CustomerID',{ dataField: 'OrderDate', dataType: 'date', allowGrouping: false },{ dataField: 'ShippedDate', dataType: 'date' },'ShipName',{ dataField: 'ShipCountry', caption: 'Ship To' }];

allowHeaderFiltering

指定是否利用其头按该列允许过滤。

类型:Boolean
默认值:True

allowHiding

指定是否列可以由用户隐藏。设置这个选项使得只有当列选择可见的感觉。

类型:Boolean
默认值:True

如果allowHiding选项设置为true为列,用户可以到列选择面板来隐藏其标题拖动此列。如果此选项设置为false,该列不能被用户隐藏。

allowReordering

指定是否一个特定的列可以在列重新排序一起使用。设置这个选项使得只有当allowColumnReordering选项设置为真正意义上的。

类型:Boolean
默认值:True

最初,网格列出现在列数组指定的顺序中。当未指定此数组时,网格列与数据源中的第一个对象的字段相同的顺序。用户可以排序列如果allowColumnReordering选项设置为真。如果你需要禁止使用特定的列在排序过程中,将allowreordering选项这一栏的假

举个栗子:

$scope.columns = [{ dataField: 'author', allowReordering: false },{ dataField: 'title', allowReordering: false },{ dataField: 'year', allowReordering: false },'genre', 'format',{ dataField: 'price', format: { type: 'currency', precision: 2 } }];

allowResizing

指定是否一个特定的列可以由用户调整。设置此选项使只有在allowColumnResizing选项是真正意义上的。

类型:Boolean
默认值:True

默认情况下,每个网格列的宽度是自动计算的,这取决于部件的容器的宽度和网格列的总数。要指定一个特定的列的宽度,使用列的width选项。在运行时,如果allowColumnResizing选项设置为true,用户可以调整列。如果你需要禁止调整为特定的列,此列的allowResizing选项设置为false

举个栗子:

$scope.columns = ['author',{ dataField: 'title', width: 220, allowResizing: false },'year', 'genre', 'format',{ dataField: 'price', format: { type: 'currency', precision: 2 } }];

allowSearch

指定如果列可用于搜索网格的记录。设置这个选项使得只有当搜索面板是可见的感觉。

类型:Boolean
默认值:True

默认情况下,搜索在所有列执行。但是你可以在某些列禁用它。为此,设置allowSearch选项设置为false。

也可以看看
有关如何指定dxDataGrid过滤设置,请参阅 Filtering in UI主题的更多信息

allowSorting

指定是否格记录可以在运行时一个特定的列进行排序。设置此选项使只有在排序方式从无不同的感觉。

类型:Boolean
默认值:True

也可以看看
有关如何在dxDataGrid指定排序设置的详细信息,请参阅UI主题中的排序。
注:在与计算值一列,此选项默认设置为false。

视频教程:

举个栗子:

$scope.columns = ['OrderID',{ dataField: 'CustomerID', allowSorting: false },{ dataField: 'OrderDate', dataType: 'date' },{ dataField: 'ShippedDate', dataType: 'date' },{ dataField: 'ShipName', allowSorting: false },{ dataField: 'ShipCountry', caption: 'Ship To' }];

autoExpandGroup

指定组是否出现扩大与否时,记录由一个特定的列进行分组。设置这个选项使得只有当分组被允许此列感。

类型:Boolean
默认值:True

举个栗子:

$scope.columns = ['author', 'title',{ dataField: 'year', width: 60 },'genre',{ dataField: 'format', autoExpandGroup: false }];

calculateCellValue

指定一个返回要显示在一列单元的值的回调函数。

类型:function(rowData)
功能参数:
rowData:Object
由当前网格行表示的数据对象。

返回值:any
被列单元格中显示的值。

默认情况下,列单元格填充了数据字段的值,其中该列相关联。但是,您可以为单元格提供自定义的数据来代替。要做到这一点,实现一个回调函数,并将其分配给列的calculateCellValue 选项。显示网格行时,此函数被调用。

注:如果在一列中的值习惯上计算的,它们不能在运行时编辑。此外,在计算列,排序和分组功能默认情况下禁用。要启用它们,明确设置列的allowSorting和allowGrouping选项设置为true。 当您使用此选项来填充数据,过滤和搜索栏可能无法正常在此列中进行。在这样的情况下,实现了calculateFilterExpression功能。

注:要调用默认的行为,调用 this.defaultCalculateCellValue(rowData) 函数返回它的结果

举个栗子:

$scope.columns = ['CustomerID',{caption: 'Employee',width: 170,calculateCellValue: function (data) {var employee = employeesByKey[data.EmployeeID];return [employee.TitleOfCourtesy, employee.FirstName, employee.LastName].join(' ');}},{ dataField: 'OrderDate', dataType: 'date' },'Freight','ShipName',{ dataField: 'ShipCity', caption: 'Ship To' }];

calculateDisplayValue

指定在不在编辑状态时如何获取在单元格中显示的值。

类型:String|function(rowData)
功能参数:
rowData:Object
表示单元格所属的网格行的对象。
返回值:any
将要显示在单元格中的值。

如果网格数据源包含要显示的值,指定所需要的列,此选项的数据字段的值。如果您要显示的值可以使用多个列的值计算,也可以从远程数据源获取,为该选项分配函数

calculateFilterExpression

指定定义习惯计算出的网格过滤器的回调函数。

类型:function(filterValue,selectedFilterOperation,目标)
功能参数:
filtervalue:any
在过滤器行的单元格中键入的文本。
selectedFilterOperation:String
当前选定的过滤操作。
目标:String
标识的地方设置过滤器表达式过滤UI元素的类型。
Possible values:"filterRow", "headerFilter" and "search"
返回值:Array

当你使用calculatecellvalue选项来填充数据列,你都需要搜索calculatefilterexpression回调函数,此操作是必需的,因为这些操作是在数据源对象上执行的,而不是在网格记录上执行的。

该实施函数必须返回以下项目的数组。

  • 1.数据源字段或用于网格列提供的实际值的函数。通常,calculateCellValue功能这里传递。
  • 2.比较运算符。以下运算符:“=”,“<>”,“>”,“> =”,“<”,“<=”,“between”,“startswith”,"endswith", "contains", "notcontains".
  • 3.输入到一个筛选器行单元格的值。将将实际值与此值进行比较。

下面的代码片段演示实施calculateCellValuecalculateFilterExpression功能的一个常见的例子。

$("#gridContainer").dxDataGrid({// ...columns: [{calculateCellValue: function (rowData) {return rowData.Amount * rowData.Cost;},calculateFilterExpression: function (filterValue, selectedFilterOperation) {return [this.calculateCellValue, selectedFilterOperation || '=', filterValue];},// ...}, //...]
});

注:要调用默认的行为,需调用this.defaultCalculate FilterExpression(filterValue,selectedFilterOperation)函数返回它的结果

calculateGroupValue

指定字段名称或返回一个字段名称或值要用于分组列的单元的函数。

类型:String| function(rowData)
功能参数:
rowData:Object
返回值:any

默认情况下,grouping是使用分组列包含精确值进行。然而,在某些情况下,这种方法可以得到差的结果,例如,当用户通过包含日期栏试图组记录。在这种情况下,可能优选在分组以使用计算值。为了这个目的,分配给calculateGroupValue选项的功能。此函数必须返回用于分组的计算值

cellTemplate

指定网格列单元格的自定义模板。

类型:template
功能参数:
cellElement: jQuery
在定制的单元格。
cellInfo: Object
当前单元格的选项。

为了表示在列单元格的自定义数据,使用cellTemplate选项。实现一个定义列单元格的标记一个回调函数,并将其分配给该选项。该功能将被调用每次dxDataGrid重新呈现自身。

在实施cellTemplate功能,可以使用函数的第一个参数下的自定义访问单元。此参数提供给元素相关的jQuery操作的访问。此外,您可以访问使用函数的第二个参数等领域的单元格选项。这些字段在下面列出:

  • data
    包含表示当前单元格所属的行表示的数据源的对象。
  • value
    因为它是在数据源中指定包含当前单元的值。
  • text
    包含字符串格式的当前单元格的值。使用此字段来获得与应用格式的值。
  • displayValue
    包含当前单元格显示的值。仅当当前单元格所属的列与值字段不同
  • columnIndex
    包含到当前小区所属的列的索引。有关该指数是如何计算的更多信息,请参阅计算列索引的话题。
  • rowIndex
    包含当前单元格所属的列的索引。有关此索引如何计算的更多信息,则参考Calculating the Column Index。
  • column
    包含到当前单元格的列的设置。
  • rowType
    表示当前单元格所属的行的类型。此字段等于为组行的普通行或“组”的“数据”。使用此字段区分行类型。

当使用基因 Knockout or AngularJS,您可以指定使用dxTemplate标记组件单元模板。要获取相关信息,请参阅 Customize Widget Element Appearance文章。

它也可以通过使用下列模板引擎中的一个定义标记中的单元格模板。上述单元格设置可以以类似的方式在模板内访问。

  • jQuery Templates
  • JsRender
  • Mustache
  • Hogan
  • Underscore
  • Handlebars
  • doT

使用模板引擎,通过以下值到cellTemplate选项之一。

  • 代表模板的容器一个jQuery对象。
  • DOM节点代表模板的容器。
  • 返回一个jQuery对象或DOM节点代表模板的容器的功能。

如果要实现双向数据模板中的绑定,请确保您已通过设置twoWayBindingEnabled选项设置为false关闭内置的实现此功能。

要自定义单元格没有定义整个模板,处理cellPrepared事件

columns

按当前列的列。
类型:Array
默认值:undefined

不同于普通的列,带列不保存数据。相反,他们在一个列标题下收集两个或多个列。要设置此布局,使用层次结构声明带列。为了这个目的,将嵌套的列分配到带列的列字段中。例如,下面的代码声明“地址”的band column,并在它的内部嵌套三列。

var dataGridOptions = {// ...columns: [{caption: 'Address',columns: ['City', 'Street', 'Apartment']}, {// ...}]
};

嵌套列几乎每一个属性都有一个正则列。这些属性在引用的列部分中描述

注:有一个例外:嵌套列不能单独固定,因此指定的固定和定位性能对他们是无用的。然而,整个带列可以是固定的,像往常一样。

var dataGridOptions = {// ...columns: [{caption: 'Address',fixed: true,fixedPosition: 'right',columns: [ 'City',{dataField: 'Street',width: 100,sortOrder: 'asc'},'Apartment']}, {// ...}]
};

带列支持任何嵌套级别的层次结构。这意味着下面的结构是可以接受的。

var dataGridOptions = {// ...columns: [{caption: 'A',columns: [ 'A1', 'A2', {caption: 'A3',columns: ['A31', 'A32', {caption: 'A33',columns: ['A331', 'A332', 'A333']}]}]}, {caption: 'B',columns: // ...}]
};

带列具有isBand标志。带状列的ownerband属性设置。使用这些属性来区分代码中的带和带条列。

cssClass

指定一个CSS类可以应用于列
Type: String
默认值:undefined

在dxDataGrid,您可以更改使用CSS样式网格列的外观。要应用样式到列,实现一个CSS类,它可能包含各种属性,而这个类的名称分配给列的CssClass选项

举个栗子:

columns: [{ dataField: 'author', cssClass: 'red' },{ dataField: 'title', width: 210, cssClass: 'green' },{ dataField: 'year', cssClass: 'blue' },{ dataField: 'genre', cssClass: 'purple' },{ dataField: 'format', cssClass: 'gray' }],

customizeText

指定一个返回要显示在一个列的单元格的文本的回调函数。

类型:function(cellInfo)
功能参数:
cellInfo: Object
一个单元的值。

对象结构:
value: String|Number|Date
因为它是在数据源中指定单元格值。
valueText:String
与应用格式的单元格的值。
target: String
指示了customizeText函数被称为UI元素的类型。
可能的值: "filterRow", "headerFilter" and "search"

groupInterval: String|Number
指示头过滤器值是如何结合成组。如果提供的目标是“headerFilter”。
返回值:String
要被显示在单元格中的文本。

在实现这个选项的回调函数,您可以访问使用作为函数的参数传递的对象一个单元格的值。或者,也可以在函数中使用该对象。这个对象具有相同的结构作为参数传递的对象。

注:当在列中显示的数据customizeText回调也被称为匹配的搜索条件来适当突出匹配的文本

dataField

指定为列提供的数据的数据源的领域。

类型:String
默认值:undefined

当指定网格列的数据,你可以简单地分配数据源字段列选项的数组。时,应指定的列没有其他选择对象时,此方法非常有用。否则,分配代表格列列的选择对象的数组,并指定每个对象中的dataField选项。您可以结合这些方法。例如,下面的代码:

$("#gridContainer").dxDataGrid({// ...columns: ['CustomerID',{ dataField: 'EmployeeID', width: 200 },'OrderDate',{ dataField: 'Freight', format: 'fixedPoint' },'ShipName','ShipCity']
});

举个栗子:

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: employees,columns: columns}"></div>
$scope.columns = [{ dataField: 'TitleOfCourtesy', caption: 'Title' },'FirstName','LastName',                { dataField: 'Title', caption: 'Position', width: 150 },{ dataField: 'BirthDate', dataType: 'date', format: 'shortDate' },{ dataField: 'HireDate', dataType: 'date', format: 'shortDate' }//显示效果是'Title','FirstName','LastName', 'Position','BirthDate','HireDate'共6列 为什么这样呢?自己思考吧];

dataType

指定所需的类型列的值。

类型:String
默认值:未定义
可能的值:'string' | 'number' | 'date' | 'boolean' | 'object'

在某些情况下,你可能需要的数据源值转换。为了这个目的,指定使用的dataType选项所需的类型。欲了解更多信息,请参阅设置数据类型的话题。

注意:如果您的日期值是一个字符串类型,确保他们有下列格式之一,以提供跨浏览器的兼容性。

  • 'YYYY/ MM / DD“(即”2014年8月25日“)
  • 'YYYY/ MM / DD HH:MM:SS'(即“2014年8月25日十六点35分10秒”)

editCellTemplate

指定当它处于编辑状态一格列的单元格的自定义模板。

类型:模板
功能参数:
cellElement: jQuery
在定制的单元格。
cellInfo: Object
当前选择的单元格。

默认情况下,当用户编辑一个单元格,他或她改变它所代表的字符串值。然而,可能存在的情况,其中一个单元具有在其编辑状态定制外观。例如,您可能希望在单元格与一组值可供选择的显示组合框。在这样的情况下,指定为一列的editCellTemplate选项。实现一个回调函数自定义列单元格的内容在编辑状态,并将其分配给该选项。这个功能将被调用的每列内的单元格切换到编辑状态的时间。

在实施editCellTemplate功能,您可以访问使用函数的第一个参数被编辑的单元格。此参数提供给元素相关的jQuery操作的访问。此外,您可以访问使用函数的第二个参数的领域电池选项。这些字段在下面列出。

  • data
    包含到的当前编辑单元所属的行表示的数据源的对象。
  • value
    因为它是在一个数据源中指定包含当前编辑单元的值。
  • text
    包含以字符串格式的当前编辑的单元格的值。使用此字段来获得与应用格式的值。
  • displayValue
    包含当前编辑的单元格中显示的值。它不同于只有在其当前单元格所属列使用查找值字段。
  • columnIndex
    包含到当前编辑单元格所属的列的索引。有关该指数是如何计算的更多信息,请参阅计算列索引的话题。
  • rowIndex
    包含到当前编辑单元格所属的行的索引。当你在一个网格几页,网格行索引是年初0每一页上。需要注意的是单元格也算作行,因而具有排索引。有关行索引的详细信息,请参阅该网格行的主题。
  • column
    包含到当前编辑单元所属的列的设置。
  • rowType
    表示到的当前编辑单元所属的行的类型。该字段为等于组行普通行“数据”或“集团”。使用此字段按类型来区分行。
  • setValue(newValue)
    一种在编辑时改变单元格值的方法。这种方法被调用后,单元格编辑过程结束。请注意,调用此方法意味着单元格的值被更改了。在批处理编辑模式中,这种情况可能会导致编辑的单元格被高亮显示,即使它的值没有实际改变,即当一个用户切换到编辑状态的单元格,然后立即切换回正常状态,而不改变的值。为了防止这种行为,调用setValue()的方法只有新值不等于旧的值,可使用的对象传递给editcelltemplate函数的第二个参数值字段的时候才执行。

当使用Knockout 或AngularJS库,您可以指定使用dxTemplate标记组件的模板。

此外,您还可以使用模板引擎来定义模板网格单元。 dxDataGrid支持以下模板引擎。上述选项可以在模板中以类似的方式进行访问。

  • jQuery Templates
  • JsRender
  • Mustache
  • Hogan
  • Underscore
  • Handlebars
  • doT

使用模板引擎,通过以下值之一的editCellTemplate选项。

  • 代表模板的容器一个jQuery对象。
  • DOM节点代表模板的容器。
  • 返回一个jQuery对象或DOM节点代表模板的容器的功能。

如果要实现双向数据模板中的绑定,请确保您已经关闭内置的实现这个功能由twoWayBindingEnabled选项设置为false

举个栗子:

dx-data-grid="{dataSource: [{ id: 1 }, { id: 2 }, { id: 3 }],columns: [{dataField: 'id',lookup: {dataSource: items,valueExpr: 'id',displayExpr: 'name'},editCellTemplate: 'myTemplate'}],editing: {mode: 'row',allowUpdating: true}}"

customizeColumns

在创建自定义网格列后指定一个函数。

类型:功能(列)
功能参数:
columns: Array
网格列。

通常,在dxDataGrid每一列被配置单独使用列阵列的对象中选择。在大多数情况下,以这种方式配置网格列足以使它们适当地出现。但是,有可能的情况时,一个数据源的基础上生成列,你需要调整他们的一些选择。在这种情况下,你并不需要声明的列数组。而是,分配给customizeColumns选项的回调函数内更改所需的选项。格列的阵列可以使用函数的参数进行访问。此数组中的每个对象的字段代表相同的列中描述的选项栏选项参考节

customizeExportData

出口前定制网格列和数据。

类型:功能(列,行)
功能参数:
列:Array
网格列。
行:Array
网格行。如果只有选定的行被导出,该数组只包含其中。

分配给该选项的功能将在onExporting和onExported功能之间进行调用。使用此函数的参数访问和更改不同的列和行选项。

也可以看看

  • export - 配置客户端的出口。
  • onExporting - 可以让你请求的详细信息导出,防止出口。
  • onExported - 允许完成导出时您通知最终用户。
  • onFileSaving - 允许您访问的导出数据和/或防止它被保存到一个文件在用户的本地存储

dataSource

指定网格的数据源。

类型:Array|DataSource|DataSource configuration
默认值:空
要为单元格提供数据,使用数据源配置项。此选项可以为下列情况之一:

  • 对象数组
    每个对象的字段将被用于提供相应的网格列数据。
  • 一个DataSource或它的配置对象
    数据源是一个有状态的对象,包括对数据排序,分组和筛选选项;它也使数据转换选项,每个数据加载时应用它们。数据源还提供了用于处理不断变化的数据和状态事件。数据源的基础数据访问逻辑是在存储隔离。不同的是数据源,一个商店是实现读取和修改数据的通用接口,一个无状态的对象。要了解更多信息,请参阅数据层的话题。

默认情况下,会为数据源对象的每个字段生成一列,但您可以指定使用的列选项栏的自定义数组。要获取有关指定网格列的详细信息,请参阅指定网格列的话题。

当使用动态变化的数据源,在dxDataGrid部件无法跟踪更改。在这种情况下更新窗口小部件,而调用refresh()方法

dataSource有两种不同的用法,其一是官方API上提供的方法,dataSource只为表格提供数据:

<div dx-data-grid="{dataSource: dataSource}"></div>
$scope.dataSource = [{ author: 'D. Adams', title: "The Hitchhiker's Guide to the Galaxy", year: 1979, genre: 'Comedy, sci-fi', format: 'hardcover' },......];

其二是Demo上的用法,具体请看代码:

<div style="xxx" dx-pivot-grid="dxGridOption"></div>
$scope.orders = orders;    //orders是存储数据的js文件$scope.dxGridOption = {dataSource: {store: orders,fields: [{area: 'column',dataField: 'OrderDate',groupInterval: 'xxx',dataType: 'date',displayFolder: 'Date',}, ....       //N个{ }],retrieveFields: false    //也就是说,dataSource内包含了retrieveFields配置属性},allowExpandAll: true,allowFiltering: true,allowSorting: true,allowSortingBySummary: true}});

disabled

指定窗口小部件是否可以响应用户交互。

类型:Boolean
默认值:false
创建一个可观察的变量并将其分配给该选项可在运行时指定窗口小部件的可用性

举个栗子:

bindingOptions: {disabled: 'false'}

editing

包含指定格内容如何可以改变的选项。

类型:Object
dxDataGrid支持编辑,插入和网格值的去除。执行特定操作的可用性由allowUpdating,allowAdding和allowDeleting选项中指定。

编辑在dxDataGrid可以以四种不同的模式来执行。对于他们的全面概述,请参阅行模式,批处理模式,电池模式和形状模式的文章。

也可以看看

  • 有关编辑设置,您可以配置,包括编辑模式的详细信息,请参阅编辑UI话题。
  • 要了解如何从代码管理编辑过程中,请参见代码主题中的编辑。

注:允许用户编辑,插入和删除之前,请确保您的数据源支持所有这些行动

教学视频:

举个栗子:

dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 7 },editing: {mode: 'batch',allowUpdating: true,allowAdding: true,allowDeleting: true}}"

editing.mode

指定如何网格值可以手动编辑。
类型:String
默认值:“row”
接受的价值观:'row' | 'batch' | 'cell' | 'form' //“行”| “全部”| “单元格”| '形成'

bindingOptions: {'editing.mode': 'batch'}

editing.texts

编辑相关的文本选项。
类型:Object
包含以下:

  • addRow - 加1行
  • cancelAllChanges - 取消所有编辑
  • cancelRowChanges - 取消该行编辑
  • confirmDeleteMessage - 点击删除的确认弹窗文字
  • confirmDeleteTitle - 点击删除的确认弹窗标题
  • deleteRow - 删除该行
  • editRow - 编辑行
  • saveAllChanges - 保存所有编辑
  • saveRowChanges - 行编辑确认文字
  • undeleteRow - 取消删除
  • validationCancelChanges - 撤销所有删除动作
editing: {mode: 'row',allowUpdating: true,allowDeleting: true,texts: {deleteRow: '删除',saveRowChanges: '确定',confirmDeleteTitle: 'Confirm Row Deletion'}}

errorRowEnabled

指示是否显示网格错误行。

类型:Boolean
默认值:True
错误行显示网格的生命周期中,在服务器上出现的数据错误。

将此选项设置为false,以避免显示给最终用户的错误。相反,将被显示在浏览器的控制台的误差。另外,您可以订阅dataErrorOccured事件时,在服务器上发生数据错误提供自定义操作

export

导出

类型:Object
当启用客户端出口,网格工具栏包含导出按钮的网格数据导出到Excel。有关导出的详细信息,请参阅客户端导出的文章。

注:导出功能需要JSZip库。请回复此库的引用添加到您的网页。您可以从您DevExtreme包的JS文件夹,把它或使用的DevExpress CDN如下图所示。

JSZip库:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.6.0/jszip.min.js"></script>

查看栗子:

教学视频:

filterRow

指定筛选行选项。

类型:Object
在dxDataGrid,最终用户可以使用过滤器排在运行时过滤格记录。该行位于包含列标题的网格行的下面。默认情况下,过滤器行是隐藏的。使其出现,设置filterRow对象真实可见选项。

通过在网格列中的值进行过滤格的记录,用户必须输入在属于该列中的过滤器行单元所需的值(或它的一部分)。的匹配的记录是根据列的当前选择的滤波操作来确定。要改变这种操作,用户必须点击伴随每个滤波器行单元格的放大镜图标,然后从出现的下拉列表中选择所需过滤操作。

注:此功能不适用于隐藏的列。

查看Demo:

举个栗子:

dx-data-grid="{dataSource: orders,columns: columns,pager: { visible: false },scrolling: { mode: 'infinite' },filterRow: {visible: true,showOperationChooser: false}}"

grouping

指定分组设置和的分组格记录的行为。

类型:Object
最终用户可以使用组面板组数据,在上下文菜单中出现由列标题,或两者的点击。以下列出了分组,您可以指定使用分组对象设置的概述。

  • 启用
    为了让使用上下文菜单分组,分配真正到了contextMenuEnabled选项。此外,您可以启用使用组面板分组。为此,分配真或“自动”的GroupPanel时|可见选项。
var dataGridOptions = {// ...grouping: {// ...contextMenuEnabled: true // enables grouping using the context menu},groupPanel: {// ...visible: true // enables grouping using the group panel}
};

如果你需要禁用单个列分组,分配假此列的allowGrouping财产。

  • 行为
    有两种模式定义用户如何展开/折叠组。在“buttonClick”模式适用于中型和大型屏幕设备。在“rowClick”模式是专为小屏幕设备,性能相当完美。
var dataGridOptions = {// ...grouping: {// ...expandMode: 'buttonClick' // 'rowClick'}
};

一组可以出现两种扩展或最初是折叠的。要指定,使用autoExpandAll选项。此外,您还可以禁止用户折叠组。为此,分配假的allowCollapsing选项。

var dataGridOptions = {// ...grouping: {// ...autoExpandAll: true, // makes the groups appear expandedallowCollapsing: false // disallows group collapsing}
};

此外,您还可以折叠/使用折叠所有组(指数)从代码中扩大网格组和展开所有组(指数)的方法。

查看Demo:

举个栗子:

dx-data-grid="{dataSource: books,paging: { pageSize: 8 },groupPanel: { visible: true },grouping: { autoExpandAll: false }}"

groupPanel

配置组面板。

类型:Object
在dxDataGrid数据可以由一列或若干分组。一旦一列用于分组,它被添加到组面板。

默认情况下,该组面板是隐藏的。为了使其可见,设置GroupPanel时|可见选项设置为true。另外,组面板的可见性取决于设备的屏幕大小。要做到这一点的行为,设置可见选项设置为“自动”。

如果你需要显示组面板,但要irresponsive,分配假的GroupPanel时| allowColumnDragging选项。这是有用的,例如,当网格记录最初分组并当用户需要知道的分组,但必须不能改变它。

也可以看看

  • grouping | contextMenuEnabled - 使用户能够使用上下文菜单组的数据。
  • columns[] | allowGrouping - 不允许单个列分组。
  • grouping - 定义基团的行为。

查看Demo:

举个栗子:

dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 7 },groupPanel: {visible: true,allowColumnDragging: false}}"

headerFilter

指定使用列标题过滤器过滤选项。

类型:Object
当一列标题过滤器是可见的,每列标题是伴随着调用一个下拉菜单中选择过滤器图标。在此菜单中,从当前列的所有唯一值列。一个最终用户可以过滤所述网格行选择一个或几个值。

您可以使用列指定列级标题过滤 headerFilter 对象。

注:此功能不适用于隐藏的列。

查看Demo:

height

指定窗口小部件的高度。

类型:Number|字符串| 功能
返回值:Number|字符串
窗口小部件的高度。
默认值:undefined
该选项可以容纳以下类型的一个值。


  • 在像素部件的高度


  • 小部件高度的CSS测量(例如,"55px", "80%", "auto" and "inherit")

  • 功能
    函数返回小部件的高度,例如

height: function () {return baseHeight - 10 + "%";
});

hint

指定控件中显示的提示文本。

类型:String
默认值:undefined

hoverStateEnabled

指定是否当鼠标指针移动超过他们的网格行会突出显示。

类型:Boolean
默认值:FALSE

dx-data-grid="{dataSource: books,columns: ['author',{ dataField: 'title', width: 210 },'year', 'genre', 'format'],paging: { pageSize: 8 },bindingOptions: {hoverStateEnabled: 'true'}}"

loadPanel

指定的选择配置负载面板。

类型:Object
当dxDataGrid具有大量的记录操作或使用远程存储作为数据源,数据加载需要时间。由于正在准备数据,dxDataGrid显示负载面板。

负载面板包括一个窗格,加载指示灯和文字。您可以指定是否窗格或装载指示器必须分别使用showPane或showIndicator选项来显示。由负载面板中显示的文本可以使用文本选项来指定。此外,您还可以更改使用loadPanel配置对象的相应选项负载板的高度或宽度。

此外,还可以显示/使用 beginCustomLoading(messageText)和endCustomLoading()方法时,从代码中隐藏的负载面板。

由于表格负载面板实际上是在DevExtreme dxLoadPanel小部件,您可以指定属于这个小部件在loadPanel对象中的任何选项

举个栗子:

dx-data-grid="{dataSource: {store: {type: 'odata',jsonp: true,url: 'http://services.odata.org/v2/Northwind/Northwind.svc/Orders'}},.....loadPanel: {height: 150,width: 400,text: 'Data is loading...'}}"

masterDetail

允许你建立网格中的主从接口。

类型:Object
在dxDataGrid,主从接口提供与包含在这个数据行的细节可扩展部分通常数据行。在这种情况下,数据行被称为“主行”,而部分被称为“节”。

为了使主从接口,真正分配给masterDetail|启用选项。在此之后,指定使用masterDetail细节部分的模板|模板选项。模板让你几乎任何东西放入细节部分。例如,您可以显示另一个dxDataGrid或任何其他UI部件那里。有关指定的细节部分的模板的详细信息,请参阅模板选项说明

查看Demo:

教学视频:

noDataText

当网格不包含任何记录指定的文本显示。
类型:String
默认值:'No data'

onAdaptiveDetailRowPreparing

的处理程序adaptiveDetailRowPreparing事件。

类型:功能
功能参数:
E:Object
有关事件的信息。
对象结构:
成分:Object
窗口小部件实例。
element: jQuery
窗口小部件的容器。
型号:Object
数据,可用于对元件结合。仅在淘汰赛的方式。
formOptions:Object
在dxForm小部件的布局选项。
默认值:null

自适应细节行显示从被隐藏在小部件适应屏幕或容器大小列的信息。自适应细节行前adaptiveDetailRowPreparing事件触发将呈现。此行包含dxForm小部件定义的列项的布局。当实现事件处理程序,您可以访问使用处理程序的参数的formOptions领域的dxForm选项。

注:有一些,你不能使用指定由于技术的限制formOptions选项。那些有以下几种:

  • 模板
  • editorType
  • 任何事件处理(选项,其名称开头“on...”)

也可以看看

  • columnHidingEnabled - 允许列隐藏在UI中。
  • columns[] | hidingPriority - 决定列先隐藏其中。
  • Handle Events - 描述的方式来处理在dxDataGrid小部件事件

onCellClick

处理程序cellClick事件。
类型:function()|字符串
默认值:空
户点击一个网格单元的cellClick事件触发。在实施本次活动的处理功能,使用传递给这个函数作为参数的对象。在此对象的字段,你可以找到与该单击的单元格的数据。

或者,您可以导航到特定的URL时,cellClick事件触发。为此,分配此网址到onCellClick选项。

此外,可以在用户点击一个排执行某些动作。为此,处理rowClick事件。

举个栗子:

dx-data-grid="{dataSource: employees,columns: [......],onCellClick: onCellClick}"
$scope.onCellClick = function (clickedCell) {clickedCell.cellElement.hasClass('clicked') ? clickedCell.cellElement.removeClass('clicked') : clickedCell.cellElement.addClass('clicked')}

onCellHoverChanged

cellhoverchanged事件的处理程序。
类型:函数
默认值:空

的cellhoverchanged事件当在网格单元状态改变。当在执行此事件的处理函数时,使用传递给该函数的对象作为它的参数。在这个对象的字段中,您可以找到与悬停状态已更改的单元格有关的数据。例如,确定单元格是否已在,检查的事件类型字段的值

onCellPrepared

单元格初始渲染处理程序
类型:函数
默认值:空

单元格初始渲染便加载cellPrepared事件。当执行此事件的处理函数时,使用传递给该函数的对象作为其参数。在这个对象的字段中,您可以找到与所准备的单元格有关的数据。

查看栗子:

举个栗子:(单元格内容为空的,背景色设为黄色)

dx-data-grid="{dataSource: beers,columns: [....],paging: { pageSize: 8 },onCellPrepared: onCellPrepared}"
$scope.onCellPrepared = function (info) {if (info.value == '')info.cellElement.addClass('noData');}

onContentReady

处理程序内容就绪事件 (每次对数据搜索、过滤分页都会调用此事件)
类型:函数
默认值:空
当控件内容准备好时,指定一个函数来执行一个自定义动作

<div style="height:380px" dx-data-grid="{dataSource: orders,columns: [......],paging: { pageSize: 6 },filterRow: { visible: true },groupPanel: { visible: true },selection: { mode: 'single' },onContentReady: onContentReady}"></div>
<b>onContentReady</b> has been called for the {{count}} time<span ng-if="count > 1">s</span>
$scope.onContentReady = function () {$scope.count++;}

onContextMenuPreparing

处理程序文本菜单准备的事件
类型:函数
默认值:空

在显示在网格中的上下文菜单之前,指定一个函数来执行一个自定义动作。例如,您可以更改菜单中的项集。

<div id="gridContainer" style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: orders,columns: [...],onContextMenuPreparing: onContextMenuPreparing}"></div>
$scope.onContextMenuPreparing = function (e) {if (e.row.rowType === 'data') {var dataGrid = $("#gridContainer").dxDataGrid("instance");e.items = [{text: "Edit",onItemClick: function () {dataGrid.editRow(e.row.rowIndex);$scope.isEditingInProcess = true;}}, {text: "Insert",onItemClick: function () {dataGrid.addRow();$scope.isEditingInProcess = true;}}, {text: "Delete",onItemClick: function () {dataGrid.deleteRow(e.row.rowIndex);}}];}};

onDataErrorOccurred

用于数据出错事件处理程序
类型:函数
默认值:空

为了处理可能发生在数据源错误,实现一个处理函数,并把它分配给onDataErrorOccurred选项。将获得的错误提示转化为可读的文字信息,传递给处理函数作为参数的现场错误对象的消息字段

onDisposing

菜单移除事件回调函数
类型:函数
默认值:空
返回参数:{component,element,model}
作用:菜单移除事件回调函数
举例:

onDisposing: function(){alert("menu is removed!");
}

onEditingStart

处理开始编辑事件
类型:函数
默认值:空

editingStart事件触发了单元格的编辑模式,将单元格切换到编辑状态,实施这一事件的处理程序,需要使用传递给它一个参数作为对象。在此对象的字段,要包含关于将要编辑的行的参数。

如果你需要取消一行或一个单元格的编辑状态,传递给处理程序原来的参数对象并取消编辑。

你还可以区分,在数据源存在从尚未被发送到数据源的行的行。为了这个目的,可以使用对象的键字段与行参数。的尚未发送行具有此字段定义。

查看Demo:

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: books,paging: { pageSize: 7 },editing: {mode: 'batch',allowAdding: true,allowUpdating: true},onEditingStart: onEditingStart}"></div>
$scope.onEditingStart = function (info) {if (info.key) {info.cancel = true;}}

onEditorPrepared

处理 editorPrepared 事件
类型:函数
默认值:空

如果dxDataGrid提供的默认编辑器不能满足您的要求,您可以通过onEditorPrepared函数改变其设置自定义它们。创建一个编辑器后,此功能将被调用。

onEditorPreparing

处理 EditorPreparing 事件
类型:函数
默认值:空

部分功能同onEditorPrepared,在创建一个编辑器之前调用

onExported

导出功能
类型:函数
默认值:空

当网格数据的导出完成后,分配一个函数来执行一个自定义动作

其他相关:

  • customizeExportData - 导出前定制网格列和数据。
  • onExporting - 可以让你请求的详细信息导出,防止出口。
  • onFileSaving - 允许您访问的导出数据和/或防止它被保存到一个文件在用户的本地存储

onExporting

导出功能
类型:函数
默认值:空

在导出网格数据之前,分配一个函数来执行一个自定义动作。

其他相关:

  • export - 配置客户端的出口。
  • customizeExportData - 导出前定制网格列和数据。
  • onExported - 允许完成导出时您通知最终用户。
  • onFileSaving - 允许你访问导出的数据和/或防止它被保存在用户的本地存储的文件。

onFileSaving

文件保存功能
类型:函数
默认值:空

指定一个函数来执行一个自定义动作之前,一个具有导出数据的文件将被保存在用户的本地存储。

onInitialized

类型:Function
默认值:null
返回参数:{component,element}
作用:菜单初始化事件回调函数。Initialized事件在ContentReady事件之前
举例: onInitialized: function(){ alert("menu is initialized!"); }

onInitNewRow

插入新的一行功能(附带默认数据)
类型:函数
默认值:空

通常情况下,插入的行不包含数据。如果您需要此行包含一些默认数据,例如,行单元格的默认值,用initNewRow函数来实现。使用传参数据中对象的数据字段。

查看Demo:

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: books,columns: ['author',{ dataField: 'title', width: 210 },'year', 'genre', 'format'],paging: { pageSize: 7 },editing: { allowAdding: true },onInitNewRow: onInitNewRow}"></div>
$scope.onInitNewRow = function (info) {info.data.format = 'paperback';}

onKeyDown

按键触发事件
类型:函数
默认值:空

分配一个函数来执行一个自定义的按键动作,当设定的键被按下时,调用方法

onOptionChanged

类型:函数
默认值:空
返回参数:{component,element,model,name,fullName,value}
作用:菜单选项改变时的回调函数。
举例:

onOptionChanged: function(){alert("Option is changed!");
}

onRowClick

类型:函数
默认值:空

单元格/行 点击触发事件,也可以是跳转到指定URL

注意:当点击行处于编辑状态,或切换到编辑状态时,rowClick事件不会触发。

为选中行添加class样式:

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: employees,columns: [{ dataField: 'TitleOfCourtesy', caption: 'Title' },'FirstName','LastName',{ dataField: 'Title', caption: 'Position', width: 150 },{ dataField: 'BirthDate', dataType: 'date', format: 'shortDate' },{ dataField: 'HireDate', dataType: 'date', format: 'shortDate' }],onRowClick: onRowClick}"></div>
$scope.onRowClick = function (info) {info.rowElement.hasClass('clicked') ? info.rowElement.removeClass('clicked') : info.rowElement.addClass('clicked')}

onRowCollapsed

类型:函数
默认值:空

可实现自定义操作行/组折叠后的操作

onRowCollapsing

类型:函数
默认值:空

可实现自定义操作行/组折叠前的操作,也可以通过设置参数为true来取消折叠

onRowExpanded

类型:函数
默认值:空

可实现自定义操作行/组展开后的操作

onRowExpanding

类型:函数
默认值:空

可实现自定义操作行/组展开前的操作,也可以通过设置参数为true来取消展开

onRowInserted

类型:函数
默认值:空

插入一行数据。
onRowInserted函数可以同时存在多个!如:

onRowInserting: function(e) {logEvent("RowInserting");},onRowInserted: function(e) {logEvent("RowInserted");},

查看Demo

onRowInserting

类型:函数
默认值:空

在插入一行数据前添加限定条件,设定info.cancel = true ,不满足必要条件则提示无法保存

查看Demo

保存一个没有“作者”;或“标题”字段的新的行,这一行将被拒绝

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: books,columns: ['author',{ dataField: 'title', width: 210 },'year', 'genre', 'format'],paging: { pageSize: 7 },editing: { allowAdding: true },onRowInserting: onRowInserting}"></div>
$scope.onRowInserting = function (info) {if (!info.data.author || !info.data.title) {info.cancel = true;alert('The \'Author\' or \'Title\' field is not specified.');}}

onRowPrepared

类型:函数
默认值:空

在表格渲染之后对数据做处理

栗子:所有year> 1800且year<= 1900的书名是灰色的:

div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: dataSource,columns: ['author',{ dataField: 'title', width: 250 },'year', 'genre', 'format'],onRowPrepared: onRowPrepared}"></div>
$scope.onRowPrepared = function (info) {if (info.rowType != 'header' && info.data.year > 1800 && info.data.year <= 1900)info.rowElement.addClass('nineteenthCentury');}

onRowRemoved

删除数据,可以调用RowRemoved方法
类型:函数
默认值:空

onRowRemoving: function(e) {logEvent("RowRemoving");},onRowRemoved: function(e) {logEvent("RowRemoved");}

onRowRemoving

删除数据,可以调用RowRemoved方法
类型:函数
默认值:空
删除行不是立即删除,而是变为待删除状态,点击 Undelete 和 撤销 按钮都可以取消删除操作,只有再点击save后,数据才会消失

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: books,columns: ['author',{ dataField: 'title', width: 210 },'year', 'genre', 'format'],paging: { pageSize: 8 },editing: {allowDeleting: true,mode: 'batch'},onRowRemoving: onRowRemoving}"></div>
$scope.onRowRemoving = function (info) {if (info.data.format == 'hardcover') {info.cancel = true}}

onRowUpdated

数据更新
类型:函数
默认值:空

对单行/多行数据进行编辑,使用onRowUpdated被编辑的数据会马上更新,点击撤销图标后会撤回显示原数据

onRowUpdating

数据更新
类型:函数
默认值:空

对单行/多行数据进行编辑,使用onRowUpdating被编辑的数据不会马上更新,点击save后才会保存数据

注意:在批量编辑模式下,当几个行要被更新时,onRowUpdating功能将被用于单独各行执行。

查看Demo:

dx-data-grid="{onRowUpdating: onRowUpdating}"
$scope.onRowUpdating = function (info) {if (info.oldData.format == 'hardcover') {info.cancel = true;}}

onRowValidating

检查表格数据是否符合标准
类型:函数
默认值:空

当单元的数据被改变时,这些单元格中指定的验证规则进行检查,并提示错误。

dx-data-grid="{onRowValidating: onRowValidating}"
$scope.onRowValidating = function (e) {var dataGrid = e.component;var rowIndex = dataGrid.getRowIndexByKey(e.key),year = (e.newData.year === undefined) ? e.oldData.year : e.newData.year;if (year > new Date().getFullYear()) {e.isValid = false;dataGrid.getCellElement(rowIndex, 'year').find('input').css('background', 'rgba(255, 0, 0, 0.5)');}}

onSelectionChanged

已中单元格/取消时触发,可以传递被选中对象的某些字段(如:selectedRowsData[0])
类型:函数
默认值:空

可以使用 byKey(key) 检索数据

查看Demo:

dx-data-grid={onSelectionChanged: function (selectedItems) {$scope.selectedEmployee = selectedItems.selectedRowsData[0];}
}

pager

页面属性,包含以下内容:

  • allowedPageSizes
  • infoText
  • showInfo
  • showNavigationButtons
  • showPageSizeSelector
  • visible

类型:对象

查看Demo:

教学视频:

dx-data-grid="{pager: {showPageSizeSelector: true,allowedPageSizes: [3, 5, 8]}}"

allowedPageSizes

每页显示的行数
类型:Array|字符串
默认值:“自动”

paging: { pageSize: 8 },pager: {showPageSizeSelector: true},bindingOptions: {'pager.allowedPageSizes': 'selectedPageSizes'}

infoText

页面信息的导航文本。
类型:String
默认值:“第{0}{1}页”

当指定此选项,您可以使用位置标记0和总页数使用位置标记1.将访问当前页码的时候读取花括号内的这些位置标记

dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 8 },pager: {showInfo: true,infoText: 'Page #{0}. Total: {1} ({2} items)'   //{0}:当前页  {1}:总页数 {2}:总数据行数}}"

showInfo

指定是否显示伴随的页面导航的文本。本文由信息文本选项指定。
类型:Boolean
默认值:FALSE

是否显示infoText

bindingOptions: {'pager.showInfo': 'checkBoxState'}

showNavigationButtons

是否显示切换到上一页、下一页的箭头按钮
类型:Boolean
默认值:FALSE

bindingOptions: {'pager.showNavigationButtons': 'checkBoxState'}

showPageSizeSelector

是否显示每页行数的选择按钮
类型:Boolean
默认值:FALSE

是否显示 allowedPageSizes 每页行数的选择按钮

bindingOptions: {'pager.showPageSizeSelector': 'checkBoxState'}

visible

类型:String|布尔
默认值:“自动”

所有pager元素的可见性

bindingOptions: {'pager.visible': 'checkBoxState'}

paging

设定分页设置,paging 为false时禁用分页
类型:Object

包含了:

  • enabled
  • pageIndex
  • pageSize

查看Demo:

paging: {pageSize: 8,pageIndex: 19}

enabled

一次性加载网页全部数据
类型:Boolean
默认值:True

paging.enabled为false时,取消分页,当页显示全部数据(有滚动条)

<div style="height:350px" dx-data-grid="{bindingOptions: {'paging.enabled': 'checkBoxState'}}"></div>

pageIndex

从指定的第N页开始显示(不能大于总页数)
类型:Number
默认值:0

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{paging: { pageIndex: 9 }}"></div>

pageSize

指定网格显示的行数
类型:Number
默认值:20

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{paging: { pageSize: 8 }}"></div>

selection

指定运行时选择的选项
类型:Object
用户可以在一个或多个模式下执行选择。
当指定多重选择模式,用户能够立即使用主复选框或CTRL + A快捷键选择所有网格记录。

查看Demo:

<div style="height:390px; max-width:630px; margin: 0 auto" dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 8 },selection: {mode: 'multiple',allowSelectAll: false}}"></div>

sorting

指定运行排序的选项。
类型:Object
在dxDataGrid,用户可以在运行时排序列的记录。若要使排序列,设置它的allowSorting选项设置为true。排序可以以各种模式来执行。要指定需要的模式,使用排序配置对象的模式属性。

查看Demo:

$scope.dataGridOptions = {dataSource: books,columns: ['author',{ dataField: 'title', width: 210 },'year', 'genre', 'format'],paging: { pageSize: 8 },sorting: { mode: 'multiple' }};

ascendingText

指定,设置在一列按升序排列的上下文菜单项文本。
类型:String
默认:“升序”

bindingOptions: {'sorting.ascendingText': 'ascendingText'}

clearText

列排序重置设置上下文菜单项文本。
类型:String
默认值:“清除排序”

bindingOptions: {'sorting.clearText': 'clearText'}

mode

指定运行排序模式。
类型:String
默认值:'单'
接受的值:'none' | 'single' | 'multiple'

<div style="max-height:450px" dx-data-grid="{dataSource: books,columns: columns,paging: { pageSize: 8 },bindingOptions: {'sorting.mode': ['none', 'single', 'multiple']}}"></div>

方法

本节描述了可用于操纵dxDataGrid插件的方法。

addColumn(columnOptions)

添加一个新列的网格。

columnOptions:对象|字符串
所添加的列或数据字段的名称的选项。

要将列添加到网格,调用网格实例的addColumn(columnOptions)方法。通过添加列作为columnOptions参数的选项。请参阅列选项描述可用选项的完整列表。

有可能的情况下,当没有选择,除的dataField,都需要被指定。在这种情况下,作为参数传递到addColumn(columnOptions)中的数据字段的名称方法而不是用柱选项对象

举个栗子:

$('#addColumnButton').dxButton({text: 'Add Column',onClick: function () {var dataFieldSelectBox = $('#dataFieldSelectBox').dxSelectBox('instance');var selectedDataField = dataFieldSelectBox.option('value');var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.addColumn(selectedDataField); //添加Columnvar indexToRemove = dataFields.indexOf(selectedDataField);if (indexToRemove != -1) {dataFields.splice(indexToRemove, 1);dataFieldSelectBox.option('items', dataFields);if (dataFields.length === 0) {dataFieldSelectBox.option('value', null);$('#addColumnButton').dxButton('instance').option('disabled', true);} else {dataFieldSelectBox.option('value', dataFields[0]);}}}});

addRow()

将一个新的数据行添加到网格中

$("#insertRowButton").dxButton({text: 'Add a New Row',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.addRow();//添加一行}});

beginCustomLoading(messageText)

显示加载面板

通常情况下,dxdatagrid显示负载板自动忙时渲染或加载数据。此外,负载板可以通过调用begincustomloading要求时(messageText)方法。如果你调用这个方法没有参数,负载显示器的loadpanel |文本选项指定的文本。指定的负载板的外观,使用的loadpanel性能

一旦调用代码,加载板不会躲起来,endcustomloading()方法称为

注意:从代码调用的负载面板不会取代自动调用的加载面板。这种情况可能会导致的情况下负载面板调用代码突然改变其文字因为它被自动调用重写负载板。因此,要注意当调用的负载板不同的文字

$("#beginLoadingButton").dxButton({text: 'Begin Custom Loading',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.beginCustomLoading();var endLoadingButton = $('#endLoadingButton').dxButton('instance');if (endLoadingButton.option('disabled'))endLoadingButton.option('disabled', false);info.component.option('disabled', true)}});

beginUpdate()

防止组件更新,直到endupdate()方法被调用。

的beginupdate()和endupdate()方法允许你使用一些修改的组件。在beginupdate()方法被调用时,组件不更新UI,直到endupdate()方法被调用。当您正在更改多个组件设置时,这些方法的使用防止过多的组件更新

byKey(key)

允许您通过它的键获取数据对象

下面的代码演示了如何获得一个key = 15数据对象

dataGridInstance.byKey(15).done(function(dataObject) {// process 'dataObject'}).fail(function(error) {// handle error});

cancelEditData()

放弃在网格中所做的更改。

$("#cancelRow").dxButton({text: 'Cancel',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.cancelEditData();}});

cellValue(rowIndex, dataField)

获取单元格的值
rowIndex: Number
单元格所属的行的索引

dataField: String
数据源中的数据字段的名称

cellValue(rowIndex, dataField, value)

设置单元格的值。
rowIndex: Number
单元格所属的行的索引

dataField: String
数据源中的数据字段的名称

value: any
单元格的新值

cellValue(rowIndex, visibleColumnIndex)

获取单元格的值
rowIndex: Number
单元格所属的行的索引

visibleColumnIndex: Number
数据源中的数据字段的名称

cellValue(rowIndex, visibleColumnIndex, value)

设置单元格的值。
rowIndex: Number
单元格所属的行的索引

dataField: String
数据源中的数据字段的名称

value: any
单元格的新值

clearFilter()

清除应用于网格记录的特定类型的所有筛选器

在dxdatagrid,网格记录可以以几种不同的方式过滤。此方法的参数指定要清除什么类型的筛选器。参数值可以是以下:

  • “数据源”以清除数据源滤波器(定义在配置或通过过滤器(或应用)的方法);
  • “搜索”-清除搜索面板;
  • “头”-清除列标题筛选器;
  • “行”-清除筛选器行。
$("#clearFilterButton").dxButton({text: 'Clear Filter',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.clearFilter('dataSource');}});

clearGrouping()

取消群组网格记录

$("#clearGroupingButton").dxButton({text: 'Clear Grouping',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.clearGrouping();}});

clearSelection()

清除所有网格的记录。

或者,你可以选择特定的网格记录使用 deselectRows(keys) 的方法

$("#clearSelectionButton").dxButton({text: 'Clear Selection',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.clearSelection();}});

clearSorting()

立即清除所有网格列的排序设置。

$("#clearSortingButton").dxButton({text: 'Clear Sorting',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.clearSorting();}});

closeEditCell()

绘制从编辑状态编辑的单元格。使用此方法在编辑模式为批处理时使用此方法

$("#closeButton").dxButton({text: 'Close Cell',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.closeEditCell();}});

collapseAdaptiveDetailRow()

折叠当前扩展的自适应细节行

collapseAll(groupIndex)

网格中的折叠组或主行。

groupIndex: Number| undefined
组的索引的折叠。通过未定义折叠所有组。折叠所有行

$("#collapseButton").dxButton({text: 'Collapse Groups',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.collapseAll();}});

collapseRow(key)

允许您以它的键将一个特定的组或主行折叠。

key: any

要折叠组行,将此方法与一个数组的每个成员都是一个分组值。要崩溃一个主行,通过该方法的关键

columnCount()

返回网格中的数据列的数目

返回值:Number
方法返回的 columncount() 列目前在网格数。这个数字包括可见的和隐藏的列,但忽略了选择和编辑栏

columnOption(id)

通过标识符返回列的选项。
id: Number|String
返回值: Object

使用此方法获取当前应用于特定列的选项的对象。此方法接受以下几点:

  • Name
    列名称
  • Column Index
    列数组中列的索引。
  • Data Field
    分配给列的数据源字段的名称
  • Caption
    在列标题中显示的文本。
  • Service String
    用于获取命令列的字符串。你可以在编辑栏选择列。通过“命令:选择”字符串来获得选择列,通过“命令:编辑” - 来编辑列。得到一个命令列之后,你可以改变它的宽度或visibleIndex。

columnOption(id, optionName)

返回一个特定的列选项的值
id: Number|String
optionName: String
Return Value: any
同columnOption(id)的用法
该方法将返回第一列匹配的第一列匹配的名称、列索引、数据字段或标题的指定选项

columnOption(id, optionName, optionValue)

设置一个特定列的选项。
optionName: String
optionValue: any
同columnOption(id)的用法

通过该方法更改了第一列匹配的名称、列索引、数据字段或标题的指定选项。

onCellClick: function (clickedCell) {var dataGrid = $("#gridContainer").dxDataGrid('instance');dataGrid.columnOption(clickedCell.column.index, 'cssClass', 'clicked');}

columnOption(id, options)

立即设置一个列的几个选项。
使用此方法,您可以从代码设置一个特定列的几个选项:

  • Name
  • Column Index
  • Data Field
  • Caption
  • Service String

将更改该方法更改的第一列匹配名称、列索引、数据字段或标题的选项

defaultOptions(rule)

指定设备相关的默认配置选
rule: Object

下面的代码演示如何指定在iOS平台上执行的应用程序的所有按钮的默认选项。

DevExpress.ui.dxButton.defaultOptions({ device: { platform: "ios" },options: {text: "Click me"}
});

deleteColumn(id)

从网格中删除列。
id: Number|String

deleteRow(rowIndex)

从网格中移除特定的行。
rowIndex: Number

$("#DeleteRowButton").dxButton({text: 'Delete Row',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');var rowIndex = $('#rowIndexContainer').dxNumberBox('instance').option('value');dataGrid.deleteRow(rowIndex);}});

deselectAll()

将目前过滤器内选定的行全部移除
或者,你可以选择所有记录一次使用的 clearselection() 网格方法

deselectRows(keys)

将特定的网格记录。
keys: Array

要访问一个密钥的网格记录,必须在数据源中指定一个字段提供的关键值。如果没有指定密钥,则整个数据对象被认为是关键

editCell(rowIndex, dataField)

将一个特定单元格设置为编辑状态。
rowIndex: Number
dataField: String

editCell(rowIndex, visibleColumnIndex)

将一个特定单元格设置为编辑状态。
rowIndex: Number
visibleColumnIndex: Number

$("#editButton").dxButton({text: 'Edit Cell',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');var rowIndex = $('#rowIndexContainer').dxNumberBox('instance').option('value');var visibleColumnIndex = $('#columnIndexContainer').dxNumberBox('instance').option('value');dataGrid.editCell(rowIndex, visibleColumnIndex);}});

editRow(rowIndex)

将一个特定的行设置为编辑状态
rowIndex: Number

$("#editRowButton").dxButton({text: 'Edit the Row',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');var rowIndex = $('#rowIndexContainer').dxNumberBox('instance').option('value');dataGrid.editRow(rowIndex);}});

element()

返回控件的HTML元素的根
Return Value: jQuery

endCustomLoading()

隐藏加载面板。

通常,dxdatagrid会在渲染的时候自动隐藏负载面板的小部件。如果你调用的负载板从代码使用begincustomloading(messageText)的方法,你必须调用endcustomloading()方法隐藏

$("#endLoadingButton").dxButton({text: 'End Custom Loading',disabled: true,onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.endCustomLoading();var beginLoadingButton = $('#beginLoadingButton').dxButton('instance');if (beginLoadingButton.option('disabled'))beginLoadingButton.option('disabled', false);info.component.option('disabled', true)}});

endUpdate()

可以刷新组件后的beginupdate()方法调用。

beginupdate()和endupdate()方法允许你使用一些修改的组件。在beginupdate()方法被调用时,组件不更新UI,直到endupdate()方法称为。当您更改多个组件设置时,这些方法的使用防止过多的组件更新

expandAdaptiveDetailRow(key)

通过父数据行的键来扩展一个自适应的细节行   key: any   注:通过它的键访问数据行,必须在数据源中指定一个字段提供的关键值。如果没有指定密钥,则整个数据对象被认为是关键

expandAll(groupIndex)

在网格中展开组或主行   groupIndex: Number| undefined

注:如果使用远程数据源,这种方法不能被调用

$("#collapseButton").dxButton({text: 'Collapse Groups',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.collapseAll();}});

expandRow(key)

允许您通过它的键来展开一个特定的组或主行。
key:any
要展开一组行,用一个数组调用此方法。

exportToExcel(selectionOnly)

将网格数据输出到Excel
selectionOnly: Boolean
有关导出的详细信息,参见客户端导出文章。

filter()

返回一个筛选器表达式应用于使用过滤网格的数据源(或)方法。 返回值:any
你可以从所有可能的过滤器中得到一个总结的过滤器:

  • 使用过滤器(过滤器表达式)方法应用的过滤器;
  • 使用过滤器连续应用滤镜;
  • 使用列标题过滤器应用过滤器;
  • 使用搜索面板应用滤镜

filter(filterExpr)

适用于过滤网格的数据源
filterExpr: any 该方法过滤代码中的网格记录。通过一个数组与下面的几种方法

  • 数据源字段由哪些数据项进行过滤。
  • 比较运算符。以下运算符: "=", "<>", ">", ">=", "<", "<=", "startswith", "endswith", "contains", "notcontains"
  • 与数据源字段值应该被比较的值

查看Demo

$("#applyFilterButton").dxButton({text: 'Apply Filter',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');var column = $("#columnsSelectBox").dxSelectBox('instance').option('value');var filter = $("#filtersSelectBox").dxSelectBox('instance').option('value');var value = $("#valueTextBox").dxTextBox('instance').option('value');if (column.length > 0 && filter.length > 0)dataGrid.filter([column, filter, value]);}});

focus()

使组件获得聚焦状态

getCellElement(rowIndex, dataField)

允许您通过它的行索引和它的列的数据字段来获得一个单元格
rowIndex: Number
dataField: String

getCombinedFilter()

返回一个筛选器表达式应用于网格利用所有可能的情况

getKeyByRowIndex(rowIndex)

rowIndex: Number

dxdatagrid的API包括很多方法,其中一些接受数据键作为他们的论点而接受别人的行索引。如果你有一个行的索引,你可以得到相应的数据主要通过调用**getkeybyrowindex(rowIndex)**的方法。反之也一样,如果你有一个数据,你可以通过调用getrowindexbykey(key)获得相应的行的索引的方法。

getRowIndexByKey(key)

允许您通过数据键key进行行索引。
key: Object|String|Number

getSelectedRowKeys()

获取当前选择的网格记录键
返回值: Array

如果在数据源中没有指定字段提供键值,则整个数据对象被认为是key。在这种情况下,getselectedrowkeys()方法返回的数据对象对应于选定的记录,因此操作和getselectedrowsdata()方法完全一样

$("#getSelectedRowKeysButton").dxButton({text: 'Get Selected Row Keys',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');var keys = dataGrid.getSelectedRowKeys();$('#textArea').html('');$('#textArea').html(JSON.stringify(keys));}});

getTotalSummaryValue(summaryItemName)

获取一个总的汇总项目的值。
summaryItemName: String

hasEditData()

检查是否网格包含未保存的更改

此方法是编辑功能的一部分。

hideColumnChooser()

隐藏加载器面板

$("#hideColumnChooserButton").dxButton({text: 'Hide Column Chooser',disabled: true,onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.hideColumnChooser();var showColumnChooserButton = $('#showColumnChooserButton').dxButton('instance');if (showColumnChooserButton.option('disabled'))showColumnChooserButton.option('disabled', false);info.component.option('disabled', true)}});

instance()

返回此组件类的实例

isAdaptiveDetailRowExpanded(key)

检查一个特定的自适应细节行是否展开或折叠
key :any

注:通过它的key访问数据行,必须在数据源中指定一个字段提供的key。如果没有指定密钥,则整个数据对象被认为是key

sRowExpanded(key)

获取一个特定的组或行是否展开或折叠的状态
key: any

要查找是否展开了组行,可以使用一个数组来调用此方法,其中每个成员都是一个分组值。若要查找主行是否展开,则将其传递给该方法的key

keyOf(obj)

返回对应于通过数据对象的密钥
obj: Object

如果在数据源中没有指定字段提供键值,则整个数据对象被认为是关键值。在这种情况下,keyOf(obj)方法返回其参数

off(eventName)

将所有的事件处理程序从指定的事件
eventName: String

on(eventName, eventHandler)

订阅特定事件
eventName: String

用这种方法来订阅一个事件中部分列出的事件

option(optionName, optionValue)

将一个值设置为该组件的指定配置选项。
optionName: String
设置一个值来配置选项字段

$("#showPagerCheckbox").dxCheckBox({value: true,text: 'Show Pager',onValueChanged: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.option('pager.visible', info.value);}});

pageIndex()

获取当前页的索引

使用传呼机时,此方法返回一个值,一个小于当前页面的数量
当在一个虚拟的或无限的模式中使用滚动时,该方法返回记录显示在网格中的第一页的索引

$("#getPageIndexButton").dxButton({text: 'Get the Current Page Index',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');$('#textArea').html('');$('#textArea').html('Page Index: ' + dataGrid.pageIndex());}});

pageSize()

获取当前页面大小

在配置dxDataGrid控件时,使用paging | pageSize属性指定页大小。

refresh()

刷新网格数据。

当您使用动态数据作为数据源,dxDataGrid部件无法自动追踪可能的来源由第三方进行的更改。在这种情况下,在小窗口更新数据,调用其 refresh()方法。沿着与主数据源,该方法的一个呼叫刷新查阅列的数据源是否有任何在网格中。

注:调用 refresh()方法,总结了编辑过程。在该行编辑模式中,在一个行(如果有的话)的所有变更消失。在间歇编辑模式,改变被保存在一个缓冲区中等待要实际保存在数据源

repaint()

重绘控件

执行一些外部修改,导致小部件容器的大小或可见性的更改,该部件的状态可能会无效。在这种情况下,使用repaint()方法重绘控件

saveeditdata()

保存在一个单元格的变化

$("#saveRowButton").dxButton({text: 'Save the Row',onClick: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.saveEditData();}});

selectall()

选择所有网格的记录

用这种方法来选择编码记录所有网格。选择特定的按键记录,调用selectrows(键,保存)方法此外,您可以指定选项的用户选择使用性能的选择配置对象

查看演示

$("#selectAllButton").dxButton({text: 'Select All Records',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');dataGrid.selectAll();}});

selectRows(keys, preserve)

选择特定的网格记录。
keys:Array

要访问一个网格记录的一个关键,必须在威刚源中指定一个字段提供的关键值。如果没有指定密钥,则整个数据对象被认为是关键。

默认情况下,调用theselectrows(键,保存)方法清除所有先前选定的记录。如果你需要这些记录保持选中,调用相同的方法withtrueas它的第二个参数,为下面的代码片段演示。

dataGridInstance.selectRows([5, 10, 12], true);
$("#keys").dxTagBox({height: 35,width: 300,dataSource: booksArray,displayExpr: 'bookID',valueExpr: 'bookID',placeholder: 'Choose keys to select grid records...',onValueChanged: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');var values = info.component.option('values');dataGrid.selectRows(values);}});

selectRowsByIndexes(indexes)

Selectsgrid rowsby指标。

传递给此方法作为参数必须包含行的索引的数组。当他们计算,数据和组行进行计数,但只有数据行可以选择。

请注意,如果是用于通过网页浏览,由 selectRowsByIndexes(indexes) 应用选择方法,一旦用户移动到不同的页面被清除。因此,为了保持该选择,调用theonContentReadycallback函数。

如果使用虚拟滚动模式,行索引只对已经可见页面呈现。所以,这是不可能选择一个页上的行中,使用这种方法,页面是不可见的。

注:调用theselectRowsByIndexes(索引)方法取消选择所有先前选定的记录

$("#indexes").dxTagBox({height: 35,width: 300,dataSource: [0, 1, 2, 3, 4, 5],placeholder: 'Choose row indexes to select grid records...',onValueChanged: function (info) {var dataGrid = $('#gridContainer').dxDataGrid('instance');var rowIndexes = info.component.option('values');dataGrid.selectRowsByIndexes(rowIndexes);}});

state()

返回网格的当前状态

为更多的信息关于电网状态工作,指的是thestatestoringoption描述

totalCount()

返回当前由网格所持有的记录的数目。

使用此方法获取当前网格所持有的记录数。

$("#getTotalCountButton").dxButton({text: 'Get Total Count',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');$('#textArea').html('');$('#textArea').html(dataGrid.totalCount());}});

undeleteRow(rowIndex)

恢复在批量编辑模式中被删除的行(感觉跟取消选中有点类似)

rowIndex: Number

$("#UndeleteRowButton").dxButton({text: 'Undelete Row',onClick: function () {var dataGrid = $('#gridContainer').dxDataGrid('instance');var rowIndex = $('#rowIndexContainer').dxNumberBox('instance').option('value');dataGrid.undeleteRow(rowIndex);}});

updateDimensions()

更新网格到其内容的大小。
使用此方法网格元素被调整后更新的网格内容的位置。

事件

本节描述了这个小部件暴露事件。

为了处理事件,请使用下列方法:

  • 附加处理程序,以一个小部件的选项
    指定的回调函数,这需要对所要求的事件的处理程序小部件选项。可以在窗口小部件的配置对象内处理的事件列在配置部分。所有这些事件都从on()开始。

  • 附上一个多个处理程序或多个事件窗口小部件
    指定 on()方法的一个或多个事件的事件处理函数,所有部件事件在事件部分详细说明

Row

本节介绍了网格行的属性。包含这些属性的对象涉及到某些事件处理函数

data

单元格内容是数据对象

  • rowType是“数据”⇒data 包含数据行的数据对象
  • rowType是“细节”⇒data 包含在主人的行中的数据对象
  • rowType是“组”⇒data 具有以下结构
data: {key: string, // contains the grouping valueitems: array, // contains data objects that satisfy the grouping valueisContinuation: boolean // "true" if the group starts on one of the previous pages; "false" otherwise
}
  • rowType是“groupfooter”⇒ data 具有以下结构
data: {key: string, // contains the grouping valueitems: array, // contains data objects that satisfy the grouping valueisContinuation: boolean, // "true" if the group starts on one of the previous pages; "false" otherwiseaggregates: array // contains values calculated for the group summary
}
  • rowType是“header”,“filter”或“totalfooter”⇒data未定义

isExpanded

行展开或折叠

rowIndex

行索引

rowType

行属性类型
类型:字符串
可能是以下值:

  • "data"
  • "detail"
  • "group"
  • "groupFooter"
  • "header"
  • "filter"
  • "totalFooter"

注:行属性取决于行类型

不定期更新中,有翻译错的地方欢迎批评指正 ☺

转载于:https://my.oschina.net/SummerSaxes/blog/737760

DevExpress —— dxDataGrid相关推荐

  1. java devexpress_Coolite与DevExpress比较

    Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件. Coolite Toolkit是基于跨浏览器的http://www.coolite.com http://www.co ...

  2. DevExpress.XtraReports打印

    使用DevExpress.XtraReports打印报表时,分别采用两种打印方式.以下面的打印样式为列作简要说明: 第一种:表头表尾保持不变,表中数据根据实际打印条数更改.如现在我要打印的学生为三个, ...

  3. dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

    DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...

  4. c#devexpress GridContorl添加进度条

    demo 的实现图 下边是步骤和代码 1定义 时钟事件,定时的增加进度条的增量. 2:  添加进度条 3;定义字段属性 using System; using System.Collections.G ...

  5. DevExpress v17.2新版亮点—WPF篇(四)

    2019独角兽企业重金招聘Python工程师标准>>> DevExpress年终击穿底价,单套授权低至67折!仅剩最后6天!查看详情>>> 用户界面套包DevExp ...

  6. Winform开发中常见界面的DevExpress处理操作

    我们在开发Winform程序的时候,需要经常性的对界面的一些控件进行初始化,或者经常简单的封装,以方便我们在界面设计过程中反复使用.本文主要介绍在我的一些项目中经常性的界面处理操作和代码,以便为大家开 ...

  7. DevExpress最强干货|实用示例、更新等你来体验!

    2019独角兽企业重金招聘Python工程师标准>>> 为解决大家找资源难的问题,EVGET联合DevExpress控件中文网盘点热门的DevExpress资讯.Demo示例.版本升 ...

  8. DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)

    1.控件功能      列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例       2.1 ASPxImage                 http:// ...

  9. Devexpress Xtraform 资源文件 汉化

    DevExpress 项目的默认是英文版本的. 版本必须在12.0以上 在我们开发的时候以及发布给客户的时候 要改成中文版本. System.Threading.Thread.CurrentThrea ...

最新文章

  1. python中构造方法可以被继承吗_构造函数是在python中继承的吗
  2. Cordova for iOS[ PhoneGap]
  3. 有关nginx upstream的几种配置方式
  4. 博客园——记录我的开始
  5. 机器人门禁控制盒怎么接线方法_RFID门禁系统原理、初始密码、密码修改方法...
  6. python 新闻热点_基于Python的新闻API调用代码实例
  7. 计算机应用基础第十一版答案,计算机应用基础试题十一.xls
  8. 离散数学在计算机相关领域的应用
  9. 固态硬盘分为哪几种_通俗易懂 SSD固态硬盘接口有哪几种类型的图解
  10. 数字图像隐写术之卡方分布
  11. android自定义通知栏样式,Android 通知栏自定义样式
  12. 华为OD机试 - 喊7的次数重排(Java JS Python)
  13. 系列超声发现脊柱关节炎附着点处新骨形成
  14. 重庆大学计算机专业排名全国多少名,重庆大学成功晋级中国高校计算机大赛团体程序设计天梯赛全国总决赛...
  15. 超(效)等位基因,亚(效)等位基因,反(效)等位基因,新(效)等位基因
  16. 专题:什么是MD5?
  17. 【什么情况下U盘会出现0字节?】
  18. PHP中iconv函数来转换编码,如UTF-8转GB2312
  19. java 朗读_java下载安装 用Java实现简单的语音朗读
  20. 计网常用协议全称及对应端口号

热门文章

  1. 磁盘管理 ——RAID1+0卷+LVM
  2. JavaScript操作数组
  3. WebAssembly 的由来
  4. 猫头鹰的深夜翻译:你需要了解的数据库名词
  5. Zabbix 3.2.6通过ODBC监控MySQLOracle
  6. 用字符数组存放一个字符串,然后输出该字符串
  7. ^_^ 真是Android Framework的BUG
  8. 阿里云MVP北京闭门会圆满落幕 多把“利剑”助力开发者破阵蜕变
  9. sudo重定向失败解决方法
  10. HTTP状态码和支持的方法