Php 剑道自动完成搜索多列
我在剑道中使用了剑道自动完成, 它目前运行良好,但它只搜索或获取一列中的数据 我希望它在多个列中搜索 这是我在KendoGrid中的自动完成代码Php 剑道自动完成搜索多列,php,autocomplete,kendo-ui,kendo-grid,Php,Autocomplete,Kendo Ui,Kendo Grid,我在剑道中使用了剑道自动完成, 它目前运行良好,但它只搜索或获取一列中的数据 我希望它在多个列中搜索 这是我在KendoGrid中的自动完成代码 $(function(){ $("#EmployeeGrid").kendoGrid({ dataSource:{ serverPaging: true, serverFiltering: true, pageSize: 5, tr
$(function(){
$("#EmployeeGrid").kendoGrid({
dataSource:{
serverPaging: true,
serverFiltering: true,
pageSize: 5,
transport: {
read: "<?php echo base_url() ?>index.php/hr_management/manage_hr/list_view"
},
schema:{
data: "data",
total: "total"
}
},
toolbar: kendo.template($("#toolbarTemplate").html()),
pageable: {
input:true,
numeric:false
},
columns: [
{
field: "EmployeeID",
hidden:true
},
{
field: "FileNo",
title: "File Number"
},
{
template:"#= FirstName # #= LastName #",
title: "Full Name"
},
{
field:"City",
title:"City"
},
{
field:"AddressLine1",
title:"Address 1"
},
{
field:"WorkPhone",
title:"WorkPhone"
},
{
field:"MobileNo",
title:"Mobile No"
},
{command: { text: "View", click: showDetails }, title: " ", width: "140px"},
{command: { text: "Edit", click: EditUserDetails }, title: " ", width: "140px"}
]
});
});
var autoCompleteUsers = $("#employees").kendoAutoComplete({
minLength: 3,
dataTextField: "FileNo",
dataSource: {
serverFiltering: true,
transport: {
read: {
type: "GET",
dataType: "json",
contentType:'application/json; charset=utf-8',
url: "<?php echo base_url() ?>index.php/hr_management/manage_hr/search_employee/",
data: function (arg){
return {FileNo : autoCompleteUsers.data("kendoAutoComplete").value()};
}
}
}
},
change: onChangeAutoComplete
});
function onChangeAutoComplete(){
var value = this.value();
var grid = $('#EmployeeGrid');
if (value) {
grid.data("kendoGrid").dataSource.filter({ field: "FileNo", operator: "Contains", value: value });
} else {
grid.data("kendoGrid").dataSource.filter({});
}
}
function showDetails(e) {
e.preventDefault();
$('.action_button').html('');
var row = $(e.target).closest("tr");
var item = $("#EmployeeGrid").data("kendoGrid").dataItem(row);
$.ajax({
type: "POST",
url: "<?php echo base_url().'index.php/hr_management/manage_hr/view_employee_profile/'?>"+JSON.parse(item.EmployeeID),
success: function(output_string){
var data = output_string.split("MyMark_Employee");
$('.second_column_content_container').html(data[0]);
$('.action_button').html(data[1]);
$("#createEmployee").hide();
},
error: function(data){
alert("error");
}
});
}
function EditUserDetails(e) {
e.preventDefault();
$('.action_button').html('');
var row = $(e.target).closest("tr");
var item = $("#EmployeeGrid").data("kendoGrid").dataItem(row);
$.ajax({
type: "POST",
url: "<?php echo base_url().'index.php/hr_management/manage_hr/edit_employee_details/'?>"+JSON.parse(item.EmployeeID),
success: function(output_string){
var data = output_string.split("MyMark_Employee");
$('.second_column_content_container').html(data[0]);
if(data[1]!= " ")
{
$('.action_button').html(data[1]);
}
},
error: function(data){
alert("error");
}
});
}
$(函数(){
$(“#员工网格”).kendoGrid({
数据源:{
对,,
是的,
页面大小:5,
运输:{
阅读:“index.php/hr\u management/manage\u hr/list\u view”
},
模式:{
数据:“数据”,
总计:“总计”
}
},
工具栏:kendo.template($(“#toolbarTemplate”).html(),
可分页:{
输入:正确,
数字:false
},
栏目:[
{
字段:“EmployeeID”,
隐藏:真的
},
{
字段:“文件号”,
标题:“文件编号”
},
{
模板:“#=FirstName##=LastName”,
标题:“全名”
},
{
字段:“城市”,
标题:“城市”
},
{
字段:“AddressLine1”,
标题:“地址1”
},
{
字段:“工作电话”,
标题:“工作电话”
},
{
字段:“MobileNo”,
标题:“手机号码”
},
{命令:{文本:“视图”,单击:showDetails},标题:,宽度:“140px”},
{命令:{文本:“编辑”,单击:EditUserDetails},标题:,宽度:“140px”}
]
});
});
var autocompleteesers=$(“#雇员”).kendoAutoComplete({
最小长度:3,
dataTextField:“文件号”,
数据源:{
是的,
运输:{
阅读:{
键入:“获取”,
数据类型:“json”,
contentType:'application/json;charset=utf-8',
url:“index.php/hr\u management/manage\u hr/search\u employee/”,
数据:函数(arg){
返回{FileNo:autocompleteesers.data(“kendoAutoComplete”).value();
}
}
}
},
更改:onChangeAutoComplete
});
函数onChangeAutoComplete(){
var value=this.value();
变量网格=$(“#员工网格”);
如果(值){
grid.data(“kendoGrid”).dataSource.filter({field:“FileNo”,operator:“Contains”,value:value});
}否则{
grid.data(“kendoGrid”).dataSource.filter({});
}
}
功能展示详情(e){
e、 预防默认值();
$('.action_button').html('');
var行=$(e.target).最近的(“tr”);
var项=$(“#EmployeeGrid”).data(“kendoGrid”).dataItem(行);
$.ajax({
类型:“POST”,
url:“+JSON.parse(item.EmployeeID),
成功:函数(输出字符串){
var数据=输出字符串.split(“MyMark_员工”);
$('.second_column_content_container').html(数据[0]);
$('.action_button').html(数据[1]);
$(“#createEmployee”).hide();
},
错误:函数(数据){
警报(“错误”);
}
});
}
函数EditUserDetails(e){
e、 预防默认值();
$('.action_button').html('');
var行=$(e.target).最近的(“tr”);
var项=$(“#EmployeeGrid”).data(“kendoGrid”).dataItem(行);
$.ajax({
类型:“POST”,
url:“+JSON.parse(item.EmployeeID),
成功:函数(输出字符串){
var数据=输出字符串.split(“MyMark_员工”);
$('.second_column_content_container').html(数据[0]);
如果(数据[1]!=“”)
{
$('.action_button').html(数据[1]);
}
},
错误:函数(数据){
警报(“错误”);
}
});
}
怎么办?
我是否需要定义多个数据文本字段:
?
需要建议。好问题。我也在想同样的事情 在查看了Kendo代码(Kendo.web.min.js)之后,看起来不可能为属性dataTextField定义多个字段。看起来只允许一个字段 解决方法是在模型中添加一个字段,该字段包括(以字符串形式)所有要搜索的字段。然后将dataTextField设置为该字段。这不是一个理想的解决方案,但它是有效的