2017-12-09 12 views
1

자동 완성 위젯에서 Ajax 바인딩을 사용하고 있습니다. 첫 번째 바인딩 (데이터의 첫 번째로드)에서 바인딩이 제대로 작동하지만 값 위로 백업하면 서버로 다시 이동하지 않습니다 (데이터 소스 항목을 새로 고치지 않음). 새 문자열을 입력하면 새로 고치기 위해 dataSource를 얻는 방법은 무엇입니까?자동 완성 - 처음 몇 문자를 다시 입력 한 후 데이터 소스의 서버 측 바인딩을 시작하는 방법

.DataSource(dataSource => dataSource 
.Read(read => read.Action("CustomerOrders", "Processing")) 
.ServerOperation(true) 

답변

1

당신은 당신이 ServerFiltering (documentation)를 설정해야합니다 다음 읽기 위해 입력 텍스트를 제공하기 때문에 :

@(Html.Kendo().AutoComplete() 
    .Name("Orders") 
    .HtmlAttributes(new { style = "background-color:lightyellow;width:300px;" }) 
    .Events(e => 
    { 
     e.Select("selectOrder"); 
    }) 
    .Filter("startswith") 
    .Placeholder("Select order or enter new one") 
    .Filter("startswith") 
    .MinLength(3)  
    .DataSource(dataSource => dataSource 
    .Read(read => read.Action("CustomerOrders", "Processing") 
    .Type(HttpVerbs.Post).Data("getInputs"))).DataTextField("HouseNo")) 
1

나는이 같은 사실에 데이터 소스에 ServerOperation을 설정할 생각 항상 서버에서 필터링하려면 데이터 소스가 true이어야합니다. 나는 그것이 당신이 그것을 올바르게 다루기를 원하는 방식이라고 추측하고 있습니까? 당신은 많은 양의 데이터가 있다면 그래서 당신의 데이터 소스가 읽이

.MinLength(4) 

이 방법처럼 예 3-4에 대한 귀하의 요청에 대한 MINLENGTH을 설정하는 것은 좋은 생각이 될 수도 있지만이 는 항상 서버 필터링을 트리거합니다 처음 4자를 입력 한 후 문자를 삭제하면 dataSource.Read도 트리거됩니다.