Jquery 在MVC中创建具有自动完成功能的剑道组合框
我想创建一个具有自动完成功能的razor剑道组合框。它的工作方式应该与剑道自动完成完全相同。我所面临的问题是,只有当我将鼠标悬停在剑道组合框和 加载数据时不会弹出下拉列表。谁能帮我解决这个问题 这是我的看法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
@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);
}