2014-02-12 4 views
2

KendoGrid를 사용하고 있습니다. 첫 번째 열은 입력 텍스트이고 두 번째 열은 자동 완성입니다. 현재있는 데이터의 ID를 채우고 싶습니다. 첫 번째 열의 자동 완성에서 입력 문자열을 선택하고 루프를 사용하여 서버 측에 저장합니다. 다음은 내 코드입니다 :두 번째 열의 자동 완성에서 첫 번째 열의 ID 가져 오기

여기에 내가 특정 데이터의 ID를 가져옵니다하지만 난이의 첫 번째 열로 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); 
      }) 
) 

그리드.

답변

0

그것은 오래된 질문이다 그러나 다른 어쩌면 누군가가 비슷한 문제가 있습니다

이 작동하십시오있는 DataItem의 세트를 사용하여

function AccountSelect(e) { 
    var DataItem = this.dataItem(e.item.index()); 
    DataItem .set("HeadGRIDID", DataItem.HeaderID); 
} 

이있는 DataItem (데이터 소스에서 레코드 집합의 더러운 플래그)를 업데이트하고 UI를 업데이트합니다.

관련 문제