0

我想創建一個帶有自動完成功能的剃鬚刀kendo組合框。它應該像Kendo AutoComplete一樣工作。我面臨的問題是,只有當我懸停時,過濾器纔會發生,然後將鼠標懸停在kendo組合框中,並且在加載數據時 下拉列表不會彈出。任何人都可以請幫我解決這個問題。在MVC中創建具有自動完成功能的kendo組合框

這是我的看法

@using Kendo.MVC.UI 
@(Html.Kendo().ComboBox() 
    .Name("autoComplete") 
    .DataTextField("CustomerName") 
    .Filter(FilterType.StartsWith) 
    .DataSource(source => source.Read(read => read.Action("GetUserNames", "UserNames").Data("onStringChange")) 
    .ServerFiltering(true)) 
    .HtmlAttributes(new { style = "width:20%;" }) 
    .Suggest(true) 
    .AutoBind(false) 
    .MinLength(2) 
) 

,這裏是我的Javascript

function onStringChange() { 
    return { 
    user: $("#autoComplete").val() 
    }; 
} 

這裏是我的控制器的操作方法:

public JsonResult GetUserNames(string user) 
{ 
    if (user != "") 
    { 
    _access = _data.GetUserNames(user); 
    } 
    return Json(_access, JsonRequestBehavior.AllowGet); 
} 
+0

你能證明你傳遞給你的組合框對象的模樣? – 2014-11-27 11:29:57

+0

我已將該對象作爲字符串傳遞, 示例: hel – Mahesh 2014-12-01 09:26:56

回答

0

您可以選擇使用劍道自動完成控制做。

查看:

@(Html.Kendo().AutoComplete() 
         .Name("autocompleteID") 
         .DataTextField("TextFieldName") 
         .DataSource(source => 
         { 
          source.Read(read => 
          { 
           read.Action("GetUserNames", "ControllerName"); 
          }) 
          .ServerFiltering(true); 
         })) 

控制器:

public JsonResult Search([DataSourceRequest] DataSourceRequest request) 
    { 
     string filter = Request.Params["filter[filters][0][value]"]; 
     return Json(_data.GetUserNames(filter)); 
    }