Telerik Forums
Kendo UI for jQuery Forum
4 answers
8.2K+ views
I have a grid that contains several columns.  In the code below I have removed a few just to make it easier to read.  The standard display of this grid has the rows alternating between a light blue and white row color.  I need to be able to change the color of a row based on a specific value in that row.  For example, if the "ReportClassDescription" column is equal to "Express" then the background color for that entire row should be red. 
If it is easier I could also just changed the color of that particular cell.  So again, if "ReportClassDescription" is "Express" then that cell could just be red. 
How can I accomplish either of these scenarios?

01.@(Html.Kendo().Grid(Model)
02.      .Name("ResultList")
03.      .HtmlAttributes(new { style = "font-size:.8em; height:auto;" })
04.      .Columns(columns =>
05.        {
06.                     
07.          columns.Bound(p => p.ReportID).Width("100px")
08.            .Filterable(filter => filter.Operators(o => o
09.              .ForString(str => str
10.                .Clear()
11.                .Contains("Contains")
12.                .DoesNotContain("Does Not Contain")
13.                .StartsWith("Starts With")
14.                .EndsWith("Ends With")
15.                .IsEqualTo("Equal To")
16.                .IsNotEqualTo("Not Equal To")
17.          )));
18. 
19.          columns.Bound(p => p.ClientReportName).Width("100px")
20.            .Filterable(filter => filter.Operators(o => o
21.              .ForString(str => str
22.                .Clear()
23.                .Contains("Contains")
24.                .DoesNotContain("Does Not Contain")
25.                .StartsWith("Starts With")
26.                .EndsWith("Ends With")
27.                .IsEqualTo("Equal To")
28.                .IsNotEqualTo("Not Equal To")
29.          )));
30. 
31.          columns.Bound(p => p.ReportClassDescription).Width("100px")
32.            .Filterable(filter => filter.Operators(o => o
33.              .ForString(str => str
34.                .Clear()
35.                .Contains("Contains")
36.                .DoesNotContain("Does Not Contain")
37.                .StartsWith("Starts With")
38.                .EndsWith("Ends With")
39.                .IsEqualTo("Equal To")
40.                .IsNotEqualTo("Not Equal To")
41.          )));
42. 
43.          columns.Bound(p => p.ReportTypeDescription).Width("100px")
44.            .Filterable(filter => filter.Operators(o => o
45.              .ForString(str => str
46.                .Clear()
47.                .Contains("Contains")
48.                .DoesNotContain("Does Not Contain")
49.                .StartsWith("Starts With")
50.                .EndsWith("Ends With")
51.                .IsEqualTo("Equal To")
52.                .IsNotEqualTo("Not Equal To")
53.          )));                     
54.        })
55.      .Pageable(page => page.Refresh(true).Input(true))
56.      .Scrollable()
57.      .Groupable()
58.      .Sortable(sort => sort.SortMode(GridSortMode.MultipleColumn))
59.      .Filterable()
60.      .DataSource(dataSource => dataSource
61.        .Ajax()
62.        .Read(read => read.Action("QueueSearch_Read", "Queue"))
63.        .PageSize(100)
64.        .ServerOperation(true)
65.        )
66.      .Resizable(resize => resize.Columns(true))
67.      .Reorderable(reorder => reorder.Columns(true))
68.      )
Dimo
Telerik team
 updated answer on 03 Apr 2024
1 answer
14 views

I have a kendoGrid with filterable columns using jQuery. Let's say I have a column named Title. When I click on filter icon besides the column name a dropdown occurs that has "Filter" ption and on hovering over "Filter" option a new dropdown containing all the values from the columns is opened. I want this newly opened dropdown to the left always. How can I do so ?

 

$('#grid').data("kendoGrid");
            if (grid != undefined || grid != null)
                $('#grid').empty();

            var grid = $("#grid").kendoGrid({
                dataSource: DataSource,
                    schema: {
                        data: function (response) {
                            return response;
                        }
                    },
                },
                sortable: true,
                filterable: true,
                columnMenu: true,
                reorderable: true,
                resizable: true,
                multi: true,
                selectable: true,
                dataBinding: function () {
                    record = (this.dataSource.page() - 1) * this.dataSource.pageSize();
                },
                noRecords: true,
                messages: {
                    noRecords: "No records found"
                },
                pageable: {
                    pageSize: 5,
                    input: true
                },
                columns: [
                    {
                        title: "Sr. No.",
                        template: "#= ++record #",
                        width: 70
                    },
                    {
                        field: "Title", title: 'Title',
                        width: "25%",
                        attributes: {
                            style: 'white-space: nowrap;'
                        },
                        filterable: {
                            multi: true,
                            extra: false,
                            search: true,
                            operators: {
                                string: {
                                    eq: "Is equal to",
                                    neq: "Is not equal to",
                                    contains: "Contains"
                                }
                            }
                        }
                    },

                    {
                        command: [
                            { name: "edit1", text: "", iconClass: "k-icon k-i-eye", className: "ob-view" }],
                        title: "Action", lock: true, width: 80, headerAttributes: {
                            style: "text-align: center;"
                        }
                    }
                ]
            });

}

 

 

Neli
Telerik team
 answered on 29 Mar 2024
1 answer
13 views

Hi support team.

 

how to get the row data?  the following is currently not working..

 


<div id="grid"></div>
<script>
  $("#grid").kendoGrid({
    columns: [
      { field: "id" },
      { field: "name" },
      { command: [
        {
          // for click to work when there is template, add class "k-grid-[command.name]" to some element, otherwise the click handler will not be triggered
          name: "settings",
          template: "#= data.id # text in the command column <a class='k-button k-grid-settings'><span class='k-icon k-i-settings'></span>Settings</a>",
          click(e){
            kendo.alert("how to")
          }
        }
      ]
      }
    ],
    dataSource: [{ id: 1, name: "Jane Doe", bib: 1 }, { id: 2, name: "Jane Doe 2", bib: 1 }]
  });
</script>
</body>
</html>

Neli
Telerik team
 answered on 27 Mar 2024
0 answers
19 views

I am trying to call a function from the javascript from filter. If I try to filter the column , the function is not being called. There is no any error in console and the value is coming into the grid. But just that trigger is not called when filter the column. Also I wondering  if I remove the function from the script , it will look for the function and will give the error function not found. But if there is function, it will not call the function and alert message is not getting 
We are using the latest version of Kendo Telerik grid. Why the filterable.UI does not work in Asp.net core MVC? How can I find the reason why it is not called?

 

Here is my code



columns.Bound(e => e.City)
                .Filterable(filterable => filterable.UI("cityFilter"))
                .Width(200);

<script type="text/javascript">
    

 function cityFilter(element) {
        alert('testting'
    }
</script>


Pol
Top achievements
Rank 1
Iron
 updated question on 14 Mar 2024
1 answer
22 views

Hello Kendo Experts,

I'm currently working on integrating a Kendo JQuery Grid with an ASP.NET Core server-side setup that utilizes Fluent Validation for data validation. When submitting data via the grid, the server responds with a structured error message in case of validation failures, following this format:

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|30c76381-41abcc1635c93e3c.",
    "errors": {
        "ProductId": [
            "'ProductId' must not be empty."
        ],
        "Quantity": [
            "'Quantity' must not be empty.",
            "'Quantity' must be greater than '0'."
        ]
    }
}



My goal is to handle these validation errors and present them to the user in a user-friendly manner within the Kendo Grid interface. This involves processing the error messages received from the server and displaying them near the corresponding input fields for easy identification and correction by the user.

Could you kindly provide guidance or suggestions on how to achieve this? Any insights or examples on how to format and display these error messages effectively within the Kendo Grid would be greatly appreciated.

Thank you for your assistance.

Martin
Telerik team
 answered on 14 Mar 2024
0 answers
17 views

I have a model DateTime property called CreatedDate and If I try to filter by date  using the filter 'Is equal to' for a single date, it will not filter the records for the given date due its time part in it filter checking. So How can I make it filter truncating the time part from the filter ?
Pol




public class EmployeeViewModel

{

public string Name{get; set;}

public DateTime  CreatedDate{get; set;}

}

In Kendo Grid
column.Bound(c=>c.CreatedDate).Title("Created Date")

Pol
Top achievements
Rank 1
Iron
 asked on 14 Mar 2024
0 answers
22 views

I am trying to sort alphabetically string values inside the multi filter combobox in Kendo Grid to filter. Now it shows randomly there is no any order in mvc. Here is the code


columns.Bound(c => c.EmpName).Title("Employee Name")
.Filterable(filterable => filterable
.Multi(true)

Pol
Top achievements
Rank 1
Iron
 asked on 13 Mar 2024
1 answer
27 views
 

I am trying to create a multifilter from enum data type column using the ItemTemplate. But ItemTemplate Javascript function is not being called and data is not being shown in combobox. Please can you give me a help. Here is the code

Enum Records

public enum EmpTypes
{
    [Display(Name = "Service")]
    Service = 0,
    [Display(Name = "Sales")]
    Sales = 1,
    [Display(Name = "Purchase")]
    Purchase = 2,
    [Display(Name = "Office")]
    Office = 3
}

Kendo Grid

columns.Bound(c => c.EmpTypes).Title("Type")
        .Filterable(filterable => filterable
            .Multi(true)
            .UI(“”).DataSource(s=>s.Read(r=>r.Action(“GetEmpTypes”,”Report”)))
            .ItemTemplate(“typetemplate”));
<script>
 function typetemplate(e)
{
  alert('Test');
}

</script>
Action Method in MVC controller

Public ActionResult GetEmpTypes()
{
 List<EmpType> emptypes = new List<EmpType>();
emptypes.Add(EmpType.Sales)
emptypes.Add(EmpType.Report)
return Json(emptypes,JsonRequestBehavior.AllowGet);
}


 

Mihaela
Telerik team
 answered on 13 Mar 2024
1 answer
46 views
0

I have an Enum Model called TargetType and ReportViewModel. All the records from the Report table is listing in a kendo grid using the viewmodel ReportViewModel. But the problem is If I try to filter the enum type column 'EmpTypes' it will break the application and cannot filter it. How can I make it filter the column EmpType in Kendo?

 
public enum EmpTypes
{
[Display(Name="Service")
Service = 0,
[Display(Name="Sales")
Sales = 1
[Display(Name="Purchase")
Purchase = 2,
[Display(Name="Office")
Office = 3
}
public class ReportViewModel
{
public string Name {get;set;}
public EmpTypes EmpTypes {get;set;}
}

The Report Table consists the following record

{Name = "AbC",  EmpTypes = 1},
{Name = "xyz",  EmpTypes = 2},

In ReportController GetEmpTypes() , I am fetching the data into Kendo

IQueryable<Report> reportquery = dbContext.Reports;
var kendoList = reportquery.Select(r=>new ReportViewModel()
{
Name = r.Name,
EmpTypes = r.EmpTypes
});
return kendolist.ToDataSourceResultAsync(request);

In Kendo Grid

Columns(columns =>
{
    columns.Bound(c => c.Name).Title("Report Name");
    columns.Bound(c => c.EmpTypes).Title("Type")
        .Filterable(filterable => filterable
            .Multi(true))
            .DataSource(dataSource => dataSource
                .Read(read => read.Action("GetEmpTypes", "Report"))
            )
        );
})

Anton Mironov
Telerik team
 answered on 11 Mar 2024
2 answers
26 views

Hello,

I am currently using Kendo version 2024.1.130 with ASP.NET core Razor Pages.

In this version I am unable to get a sum aggregate to show. Nothing woks, not even a "ABC" string. The footer is visible and all columns contain a &nbsp;

Relevant Code:

@(Html.Kendo().Grid<ItemViewModel>()
    .Name("grid")
    .Filterable()
    .Sortable()
    .Scrollable()
    .Columns(columns =>
    {
        //...
        columns.Bound(c => c.ExtendedPrice).Title("Extended Price").Format("{0:n0}").ClientFooterTemplate("#=sum#");
        //...
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Aggregates(aggregates =>
        {
            aggregates.Add(p => p.ExtendedPrice).Sum();
        })
        .Read(read => read.Action("GetList", "Bom").Type(HttpVerbs.Get).Data("getParameters"))
        .Events(e => e.Error("showSimpleModelStateErrors").RequestStart("clearErrors").RequestEnd("gridDataLoaded"))
    )

Cristian-Leonard
Top achievements
Rank 1
Iron
 answered on 07 Mar 2024
Narrow your results
Selected tags
Tags
+? more
Top users last month
Mark
Top achievements
Rank 1
Yurii
Top achievements
Rank 1
Leland
Top achievements
Rank 2
Iron
Iron
Iron
Hon
Top achievements
Rank 1
Iron
Deltaohm
Top achievements
Rank 3
Bronze
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Mark
Top achievements
Rank 1
Yurii
Top achievements
Rank 1
Leland
Top achievements
Rank 2
Iron
Iron
Iron
Hon
Top achievements
Rank 1
Iron
Deltaohm
Top achievements
Rank 3
Bronze
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?