我正在使用 KendoGrid。我有四列,其中第一列是输入文本,第二列是自动完成我想填写在第一列中的自动完成中选择的数据的 ID,即在输入类型中文本,然后使用循环将其保存在服务器端。 这是我的代码:
@(Html.Kendo().Grid<Invoice.Models.ViewModels.Setup.HeaderkViewModel>()
.Name("HeadGrid")
.Columns(columns =>
{
columns.Bound(p => p.HeadGRIDID).ClientTemplate("#= HeadGRIDID#" + "<input type='text' name='HeadGRIDID' class='HeadGRIDID' />");
columns.Bound(p => p.AccountTransactionItemHead).Title("Head").EditorTemplateName("HeadAutoComplete").ClientTemplate("#= AccountTransactionItemHead#" + "<input type='hidden' class='AccountTransactionItemHead' value='#=AccountTransactionItemHead#' />");
columns.Bound(p => p.AccountTransactionItemDescription).Title("Description").Width(140).ClientTemplate("#= AccountTransactionItemDescription#" + "<input type='hidden' class='AccountTransactionItemDescription' value='#=AccountTransactionItemDescription#' />");
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.PageSize(20)
.ServerOperation(false)
.Model(model => model.Id(p => p.HeaderID))
.Create("Editing_Create", "Grid")
.Read("Editing_Read", "Grid")
.Update("Editing_Update", "Grid")
)
)
My EditorTemplate Code is as Follows:
<script type="text/javascript">
function AccountSelect(e) {
var DataItem = this.dataItem(e.item.index());
$("#HeadGRIDID").val(DataItem.HeaderID);
}
</script>
@(Html.Kendo().AutoComplete()
.Name("AccountTransactionItemHead")
.DataTextField("AccountTransactionItemHead")
.Filter("contains")
.MinLength(3)
.Template("#=data.AccountTransactionItemHead#")
.Events(events => events.Select("HeadGridSelect"))//need to write Script for CurrancySelect
.HtmlAttributes(new { style = "width: 240px;" })
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetHeadForHeadGrid", "Setup");
//.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
在这里,关于自动完成的更改,我编写了用于获取特定数据的 Id 的脚本,但我无法在 Kendogrid 中填充此 Id 作为网格的第一列。
最佳答案
这是一个老问题,但也许其他人也有类似的问题:
这会起作用:
function AccountSelect(e) {
var DataItem = this.dataItem(e.item.index());
DataItem .set("HeadGRIDID", DataItem.HeaderID);
}
使用数据项集更新数据项(数据源中记录集的脏标志)并更新用户界面。
关于javascript - 在第二列中的自动完成中获取第一列中的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718593/