javascript - 在第二列中的自动完成中获取第一列中的 ID

标签 javascript jquery asp.net asp.net-mvc kendo-grid

我正在使用 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/

相关文章:

javascript - 解析数据并按字母顺序按字母顺序排列

javascript - 使用 Javascript Nodejs 进行密码哈希处理

javascript - 当创建一个新对象时,为什么它会更新旧对象?

javascript - 全局变量未在 $.getJSON 中正确设置值

javascript - Jasmine 测试检查 html 是否包含文本并返回 bool 值

c# - 没有给定的参数对应于 BaseController 所需的形式参数 'context'

javascript - 任何使 IE 显示与 Firefox/Chrome 相同的 CSS3/HTML5 的脚本?

javascript - 在 js 中将三个月添加到当前月份

asp.net - MVC 3/4 HttpModule 或 ActionFilter

c# - 为 .net c# 开发我们自己的工具包