Hi everyone,
I'm trying to add an EditorTemplate for an autocomplete column. However, when I add the template, the only way for the grid to get populated is to select from the dropdown. If I don't select from the dropdown, then the autocomplete does not populate the grid column with the text. My code is below. Any help is much appreciated. Thank you for your time.
Bret Mullinix
Column From Grid -->
columns.Bound(l => l.AssetObject).Width(200)
.ClientTemplate(" #: data.AssetObject ? data.AssetObject.SerialNumber : getSerialNumber(this, data) #" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.AssetTypeId'
" +
"
value
=
' #: data.AssetObject ? data.AssetObject.AssetTypeId : '
[None]' #' /> " +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.SerialNumber'
" +
"
value
=
' #: data.AssetObject ? data.AssetObject.SerialNumber : '
[None]' #' /> " +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.Id'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.Id : 0 #'
/>" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.Responsible'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.Responsible : '
' #' />" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.Disposition'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.Disposition : '
' #' />" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.ResponsibleId'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.ResponsibleId : 0 #'
/>" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.DispositionId'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.DispositionId : 0 #'
/>" +
"<
input
type
=
'hidden'
name
=
'ShipmentItems[#= index(data)#].AssetObject.OwnerId'
" +
"
value
=
'#: data.AssetObject ? data.AssetObject.OwnerId : 0 #'
/>"
)
.EditorTemplateName("AssetSerialNumberAutoComplete");
EditorTemplate: AutoSerialNumberAutoComplete
@using Kendo.Mvc.UI
@using DataTransferObjects
@model AssetDTO
@(Html.Kendo().AutoComplete()
.Name("AssetSerialNumberAutoComplete")
.DataTextField("SerialNumber")
.Events(e => e.Change("onSerialNumberChange"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAssetBySerialNumber", "Asset").Data("onAdditionalDataForAssetSerialNumber");
});
source.ServerFiltering(true);
})
.HtmlAttributes(new { style = "width:100%", data_skip = "false", data_bind = "defferedValue: AssetObject" })
.Filter("startswith")
.MinLength(2)
.Height(400)
.HeaderTemplate("<
div
class=\"col-sm-12\">" +
"<
div
class=\"col-sm-6\">SerialNumber</
div
>" +
"<
div
class=\"col-sm-6\">Asset Type</
div
>" +
"</
div
><
br
/>")
.Template("<
div
class=\"col-sm-12\">" +
"<
div
class=\"col-sm-6\">#: data.SerialNumber #</
div
>" +
"<
div
class=\"col-sm-6\">#: data.AssetType #</
div
>" +
"</
div
>")
)
<
script
>
var autoComplete = $("#AssetSerialNumberAutoComplete").data("kendoAutoComplete");
autoComplete.list.width(600); //adjust width of the drop-down list
</
script
>