DevExtreme React - OData Service
To bind the List to data provided by an OData service, use the ODataStore.
jQuery
JavaScript
CSS
$(function() {
$("#listContainer").dxList({
dataSource: new DevExpress.data.ODataStore({
url: "https://js.devexpress.com/Demos/DevAV/odata/Products",
key: "Product_ID"
}),
itemTemplate: function(data, _, element) {
element.append(
$("<img />").attr("src", "data:image/jpg;base64," + data.Product_Primary_Image)
.height(30).width(30)
.addClass("item-image"),
$("<p>").text(data.Product_Name)
.addClass("item-text")
)
}
});
});.item-image {
vertical-align: middle;
}
.item-text {
display: inline-block;
vertical-align: middle;
margin: 0px 0px 0px 10px;
}Angular
TypeScript
HTML
CSS
import { DxListModule } from "devextreme-angular";
import ODataStore from "devextreme/data/odata/store";
// ...
export class AppComponent {
listDataSource = new ODataStore({
url: "https://js.devexpress.com/Demos/DevAV/odata/Products",
key: "Product_ID"
});
}
@NgModule({
imports: [
// ...
DxListModule
],
// ...
})
<dx-list
[dataSource]="listDataSource">
<div *dxTemplate="let data of 'item'">
<img class="item-image" src="data:image/jpg;base64,{{data.Product_Primary_Image}}" style="height:30px; width:30px">
<p class="item-text">{{data.Product_Name}}</p>
</div>
</dx-list>
.item-image {
vertical-align: middle;
}
.item-text {
display: inline-block;
vertical-align: middle;
margin: 0px 0px 0px 10px;
}Data kept in the ODataStore can be processed in the DataSource. For example, the DataSource can group or filter data.
jQuery
JavaScript
$(function() {
$("#listContainer").dxList({
dataSource: new DevExpress.data.DataSource({
store: {
type: "odata",
url: "https://js.devexpress.com/Demos/DevAV/odata/Products",
key: "Product_ID"
},
group: "Product_Category",
filter: ["Product_Available", "=", true]
}),
grouped: true,
itemTemplate: function(data, _, element) {
// The template is omitted for brevity
// See the previous code example
}
});
});Angular
TypeScript
HTML
import { DxListModule } from "devextreme-angular";
import "devextreme/data/odata/store";
import DataSource from "devextreme/data/data_source";
// ...
export class AppComponent {
productDataSource = new DataSource({
store: {
type: "odata",
url: "https://js.devexpress.com/Demos/DevAV/odata/Products",
key: "Product_ID"
},
group: "Product_Category",
filter: ["Product_Available", "=", true]
});
}
@NgModule({
imports: [
// ...
DxListModule
],
// ...
})
<dx-list
[dataSource]="productDataSource"
[grouped]="true" >
<div *dxTemplate="let data of 'item'">
<!-- The template is omitted for brevity -->
<!-- See the previous code example -->
</div>
</dx-list>See Also
Feel free to share topic-related thoughts here.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
Thank you for the feedback!
If you have technical questions, please create a support ticket in the DevExpress Support Center.