Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在MVC中创建具有自动完成功能的剑道组合框_Jquery_Asp.net Mvc_Asp.net Mvc 4_Html Helper_Kendo Asp.net Mvc - Fatal编程技术网

Jquery 在MVC中创建具有自动完成功能的剑道组合框

Jquery 在MVC中创建具有自动完成功能的剑道组合框,jquery,asp.net-mvc,asp.net-mvc-4,html-helper,kendo-asp.net-mvc,Jquery,Asp.net Mvc,Asp.net Mvc 4,Html Helper,Kendo Asp.net Mvc,我想创建一个具有自动完成功能的razor剑道组合框。它的工作方式应该与剑道自动完成完全相同。我所面临的问题是,只有当我将鼠标悬停在剑道组合框和 加载数据时不会弹出下拉列表。谁能帮我解决这个问题 这是我的看法 @using Kendo.MVC.UI @(Html.Kendo().ComboBox() .Name("autoComplete") .DataTextField("CustomerName") .Filter(FilterType.StartsWith) .DataSo

我想创建一个具有自动完成功能的razor剑道组合框。它的工作方式应该与剑道自动完成完全相同。我所面临的问题是,只有当我将鼠标悬停在剑道组合框和 加载数据时不会弹出下拉列表。谁能帮我解决这个问题

这是我的看法

@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);
}

你必须使用剑道自动完成控件

视图:

控制器:

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

正在向服务器发送
文本<代码>文本
是您在combo中键入的任何内容

 <script>
function onAdditionalData() {
   var filter = $('#IdUser').data('kendoComboBox').dataSource.filter();                  
    return {
           text: (filter.filters.length > 0) ? filter.filters[0].value : ''
           };
 }
 </script>

你能展示一下你传递给combobox的对象是什么样子的吗?我已经以字符串的形式传递了这个对象,例如:hel
 @(Html.Kendo().ComboBox().Name("IdUser")
.Placeholder("Select User")
.DataTextField("text")
.DataValueField("value")
.HtmlAttributes(new { style = "width:100%;", @class = "form-control" })
.Filter(FilterType.Contains)
.AutoBind(false)
.MinLength(3).DataSource(source =>
 {
  source.Read(read =>
   { 
read.Action("ServerFiltering_GetList", "Users").Data("onAdditionalData");
    })
     .ServerFiltering(true);
})
 <script>
function onAdditionalData() {
   var filter = $('#IdUser').data('kendoComboBox').dataSource.filter();                  
    return {
           text: (filter.filters.length > 0) ? filter.filters[0].value : ''
           };
 }
 </script>
  public JsonResult ServerFiltering_GetList(string text)
        {           
                var Result = _userSite.GetListUser(text);
                return Json(Result);           
        }