Data Binding
The ListBox provides options for binding it to server-side arrays, client-side arrays, and to remote data.
Server-Side Arrays
When you use complex data objects, apply the dataTextField
and dataValueField
properties to notify the widget of your preferred binding behavior.
The following example demonstrates how to initialize the ListBox and bind it to a server-side array.
var data = new string[] {
"Washington",
"London",
"Canberra",
"Ottawa",
"Sofia",
"Moscow",
"Madrid"
};
<kendo-listbox name="listbox" bind-to="data">
<toolbar position="ListBoxToolbarPosition.Right"
tools='new string[] { "moveUp", "moveDown", "transferTo", "transferFrom", "transferAllTo", "transferAllFrom", "remove"}' />
</kendo-listbox>
var data = new string[] {
"Washington",
"London",
"Canberra",
"Ottawa",
"Sofia",
"Moscow",
"Madrid"
};
@(Html.Kendo().ListBox().Name("listbox")
.Toolbar(x => x.Position(ListBoxToolbarPosition.Right)
.Tools(y =>
{
y.MoveUp();
y.MoveDown();
y.TransferTo();
y.TransferFrom();
y.TransferAllTo();
y.TransferAllFrom();
y.Remove();
}))
.BindTo(data)
)
Client-Side Arrays
The following example demonstrates how to initialize the ListBox and bind it to a client-side array.
<kendo-listbox name="listbox" datasource-id="dataSource">
<toolbar position="ListBoxToolbarPosition.Right"
tools='new string[] { "moveUp", "moveDown", "transferTo", "transferFrom", "transferAllTo", "transferAllFrom", "remove"}' />
</kendo-listbox>
<script>
var dataSource = new kendo.data.DataSource({
data: [
"Washington",
"London",
"Canberra",
"Ottawa",
"Sofia",
"Moscow",
"Madrid"]
})
</script>
@(Html.Kendo().ListBox().Name("listbox")
.Toolbar(x => x.Position(ListBoxToolbarPosition.Right)
.Tools(y =>
{
y.MoveUp();
y.MoveDown();
y.TransferTo();
y.TransferFrom();
y.TransferAllTo();
y.TransferAllFrom();
y.Remove();
}))
.DataSource("dataSource")
)
<script>
var dataSource = new kendo.data.DataSource({
data: [
"Washington",
"London",
"Canberra",
"Ottawa",
"Sofia",
"Moscow",
"Madrid"]
})
</script>
Remote Data
The following example demonstrates how to bind the Kendo UI ListBox TagHelper to a remote service.
<kendo-listbox name="listbox" datatextfield="ProductName" datavaluefield="ProductID">
<datasource>
<transport>
<read datatype="jsonp" url="https://demos.telerik.com/kendo-ui/service/Products" />
</transport>
</datasource>
<toolbar position="ListBoxToolbarPosition.Right"
tools='new string[] { "moveUp", "moveDown", "transferTo", "transferFrom", "transferAllTo", "transferAllFrom", "remove"}' />
</kendo-listbox>
@(Html.Kendo().ListBox().Name("listbox")
.DataTextField("ProductName")
.DataValueField("ProductID")
.Toolbar(x => x.Position(ListBoxToolbarPosition.Right)
.Tools(y =>
{
y.MoveUp();
y.MoveDown();
y.TransferTo();
y.TransferFrom();
y.TransferAllTo();
y.TransferAllFrom();
y.Remove();
}))
.DataSource(x=>
x.Custom()
.Transport(y=> y.Read(z=> z.Url("https://demos.telerik.com/kendo-ui/service/Products").DataType("jsonp"))))
)