Php 剑道自动完成搜索多列

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

我在剑道中使用了剑道自动完成, 它目前运行良好,但它只搜索或获取一列中的数据

我希望它在多个列中搜索

这是我在KendoGrid中的自动完成代码

 $(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设置为该字段。这不是一个理想的解决方案,但它是有效的