'Kendo UI grid with template column and filtering

I have a kendo grid in which I need to show a column with concatenated values. Obviously, I need to choose a row template or a template field in a columns attribute.

{
    title: "StreetID-STREETNAME", 
    filterable: true, 
    template: "#: strID#-#: strName #" 
},

But after running it I am not able to see any filter icon on the particular grid column.

Any clue or link will help me in a great way. After lot of R&D I couldn't see any live examples using template columns with a filtering.



Solution 1:[1]

This shows how you can customize a grid filter.

http://demos.telerik.com/kendo-ui/web/grid/filter-menu-customization.html

In the grid configuration:

{
    field: "City",
    width: 130,
    filterable: {
        ui: cityFilter
   }
},

Filter UI function:

function cityFilter(element) {
    element.kendoDropDownList({
        dataSource: cities,
        optionLabel: "--Select Value--"
    });
}

Solution 2:[2]

Check out this sample. Copy and paste the code below and save it as index.html.

<!DOCTYPE html>
<html>
<head>
    <link href="http://cdn.kendostatic.com/2013.2.716/styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
    <link href="http://cdn.kendostatic.com/2013.2.716/styles/kendo.default.min.css" rel="stylesheet" type="text/css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://cdn.kendostatic.com/2013.2.716/js/kendo.all.min.js"></script>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    <style>
        .photo {
            width: 140px;                    
        }
        .details {
            width: 400px;
        }                
        .title {
            display: block;
            font-size: 1.6em; 
        }
        .description {
            display: block;
            padding-top: 1.6em;
        }
        .employeeID {
            font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
            font-size: 50px;
            font-weight: bold;
            color: #898989;
        }
        td.photo, .employeeID {
            text-align: center;
        }
        .k-grid-header .k-header {
            padding: 10px 20px;
        }
        .k-grid td {
            background: -moz-linear-gradient(top,  rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.15) 100%);
            background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.05)), color-stop(100%,rgba(0,0,0,0.15)));
            background: -webkit-linear-gradient(top,  rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.15) 100%);
            background: -o-linear-gradient(top,  rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.15) 100%);
            background: -ms-linear-gradient(top,  rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.15) 100%);
            background: linear-gradient(to bottom,  rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.15) 100%);
            padding: 20px;
        }
    </style>
    <script>
        $(document).ready(function() {
            $("#grid").kendoGrid({
                dataSource: {
                    type: "odata",
                    transport: {
                        read: { 
                            url: "http://demos.kendoui.com/service/Northwind.svc/Employees"
                        }
                    },
                    schema: {
                        model: {
                            fields: {
                                EmployeeID: { type: "number" },
                                Title: { type: "string" }
                            },
                            id: "EmployeeID"
                        }
                    }
                },
                columns: [
                    { field: "Title", width: 400 }, 
                    { field: "EmployeeID" }
                ],
                rowTemplate: kendo.template($("#rowTemplate").html()),
                height: 430,
                filterable: true
            });
        });
    </script>
</head>
<body>
    <div id="grid"></div>

    <script id="rowTemplate" type="text/x-kendo-tmpl">
        <tr>
            <td class="details">
                <span class="title">#: Title #</span>
                <span class="description">Name : #: FirstName# #: LastName#</span>
                <span class="description">Country : #: Country# </span>
            </td>
            <td class="employeeID">
                #: EmployeeID #
            </td>
        </tr>
    </script>
</body>
</html>

You need to customize it. Hope this helps you.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 CarenRose
Solution 2 CarenRose