Telerik Forums
Kendo UI for Angular Forum
0 answers
15 views

Hi Team,

Originally we have implemented the client side filter using the Date Range for date column. Now the requirement got changed and we need to fetch it from server. But the problem is API call returns the data based on start and end date selected but the UI is not rendering the same. UI is rendering the data if we select only the start date.
We have implemented the date range filter by referring this page https://www.telerik.com/kendo-angular-ui/components/grid/filtering/filter-row#using-daterange. Can you please help to render the data by ignoring the client side filter. we are using the CompositeFilterDescriptor for filter the kendo grid data from server. still the client side filter is working for text/string filter but rendering the final data returned by API.


import { Component, Input } from "@angular/core";
import {
  BaseFilterCellComponent,
  FilterService,
} from "@progress/kendo-angular-grid";
import { FilterDescriptor } from "@progress/kendo-data-query";
import { SVGIcon, xIcon } from "@progress/kendo-svg-icons";

/**
 * NOTE: Interface declaration here is for demo compilation purposes only!
 * In the usual case include it as an import from the data query package:
  */
import { CompositeFilterDescriptor } from '@progress/kendo-data-query';

@Component({
  selector: "date-range-filter-cell",
  styles: [
    `
      kendo-daterange > kendo-dateinput.range-filter {
        display: inline-block;
      }
      .k-button {
        margin-left: 5px;
      }
    `,
  ],
  template: `
    <kendo-daterange>
      <kendo-dateinput
        class="range-filter"
        kendoDateRangeStartInput
        [value]="start"
        (valueChange)="filterRange($event, end)"
        style="width:120px"
      >
      </kendo-dateinput>
      -
      <kendo-dateinput
        class="range-filter"
        kendoDateRangeEndInput
        [value]="end"
        (valueChange)="filterRange(start, $event)"
        style="width:120px"
      >
      </kendo-dateinput><button
      kendoButton
      [svgIcon]="xIcon"
      title="Clear"
      (click)="clearFilter()"
    ></button>
    </kendo-daterange>
  `,
})
export class DateRangeFilterCellComponent extends BaseFilterCellComponent {
  // @Input() public filter: CompositeFilterDescriptor;

  @Input()
  public field: string;

  public xIcon: SVGIcon = xIcon;

  // constructor(filterService: FilterService) {
  //   super(filterService);
  // }

  public get start(): Date {
    const first = this.findByOperator("gte");

    return (first || <FilterDescriptor>{}).value;
  }

  public get end(): Date {
    const end = this.findByOperator("lte");
    return (end || <FilterDescriptor>{}).value;
  }

  // public get hasFilter(): boolean {
  //   return this.filtersByField(this.field).length > 0;
  // }

  public clearFilter(): void {
    this.filterService.filter(this.removeFilter(this.field));
  }

  public filterRange(start: Date, end: Date): void {
    this.filter = this.removeFilter(this.field);

    const filters = [];

    if (start) {
      filters.push({
        field: this.field,
        operator: "gte",
        value: start,
      });
    }

    if (end) {
     let enddate = new Date(end);

      filters.push({
        field: this.field,
        operator: "lte",
        value: end.setDate(enddate.getDate() + 1),
      });
    }

    const root = this.filter || {
      logic: "and",
      filters: [],
    };

    if (filters.length) {
      root.filters.push(...filters);
    }

    this.filterService.filter(root);
  }

  private findByOperator(op: string): FilterDescriptor {
    return this.filtersByField(this.field).filter(
      ({ operator }) => operator === op
    )[0];
  }
}

 

Kumar
Top achievements
Rank 1
 asked on 25 Aug 2025
1 answer
53 views

Our web application uses Kendo Angular Date Picker. And we are creating testcases on our web with a tool called Playwright from Microsoft. This tool mimics human interaction with the web. And on any form input control regardless of type, this fill() is used. For example:

await page.locator('input[name="expireDate"]').fill('2025-08-21');

; ----> this code will set the date input value to 2025 august 21st. But on kendo angular date picker, the resulting code is this:

await page.getByRole('button', { name: 'Toggle calendar' }).click();
await page.getByTitle('Monday, August 25,').locator('span').click();

Which will not bulletproof the testcase for future runs, as it does not contain the whole date including its year.

My question is can this component function just like native date input in this regard?

Yanmario
Telerik team
 answered on 22 Aug 2025
0 answers
10 views

Hello,

I have a dropdownlist that I just cannot select anything out of.  Here's my code:

If you look at the changeParentalControl there's a debugger inside that doesn't get hit.

 

HTML:

<kendo-dropdownlist
      [data]="getParentalControlLevels()"
      [textField]="'description'"
      [valueField]="'name'"
      [value]="getParentalControlLevelDisplay(itemPropertyEdit[1])"
      (valueChange)="changeParentalControl($event)"
/>

 

 

TS:

interface ParentalControlLevelDisplay {
  id: number;
  description: string;
  name: string;
}

getParentalControlLevels(): ParentalControlLevelDisplay[] {
    if (this.assignments.length <= 1) return [];
    return [
        {id: 0, name: '', description: 'Adults, Teens, Kids'},
        {id: 1, name: 'teens', description: 'Adults, Teens'},
        {id: 2, name: 'adults', description: 'Adults'},
      ];
 }

getParentalControlLevelDisplay(name: any): ParentalControlLevelDisplay | undefined {
    let itemParentalControlTypes: ParentalControlLevelDisplay[] = [
        {id: 0, name: '', description: 'Adults, Teens, Kids'},
        {id: 1, name: 'teens', description: 'Adults, Teens'},
        {id: 2, name: 'adults', description: 'Adults'},
    ];
    let found = itemParentalControlTypes.find((t) => t.name == name);
    return (found === undefined) ? undefined : found;
}

itemPropertyEdit: [string, string] = ['itemParentalControlLevel', 'adults'];

public changeParentalControl(event: any) {
    debugger;  // <--- this doesn't get hit!
    this.itemPropertyEdit = event;
}

Han
Top achievements
Rank 1
 asked on 21 Aug 2025
1 answer
15 views

I've a kendo chart where I'm returning an image as a marker for my angular application. Is there any option to add a tooltip for that image. 

sample image code is 

var image = new drawing.Image(
'image source',
new geometry.Rect([cx, cy], [imageSize, imageSize])
);
image.options doesn't provide an option for tooltip in angular. Is there any way of doing it?
Martin Bechev
Telerik team
 answered on 21 Aug 2025
0 answers
11 views

Hi,

I have a <kendo-splitter> inside a <kendo-expansionpanel>. During the accessibility evaluation using keyboard, I was not able to tab into the left pane, the focus goes into the right pane directly bypassing the left pane. Any fix for that? Thanks.

 

Runtang
Top achievements
Rank 1
 asked on 19 Aug 2025
1 answer
9 views

Hi there,

When [locked] is set in grid column, the kendoGridDetailTemplate will be broken. Noticed this issue after recent kendo version upgrade to 18.

Two expand + button will show in the locked columns and not locked columns and both buttons not working to expand.

Thanks.

Yanmario
Telerik team
 answered on 18 Aug 2025
1 answer
14 views
Hi, I'm using the dialog service and want to know how to position the entire dialog all the way to right of the browser window.
Hetali
Telerik team
 answered on 14 Aug 2025
0 answers
13 views

When I set the upload method and prevent defaults, the other options didn't work. But I just want to override the upload method; the other properties should work as usual.

I can't use the default Upload Component post option because it causes CORS errors.

How can I override the upload method for the Upload component for Angular?

Ferhat
Top achievements
Rank 1
 asked on 12 Aug 2025
1 answer
22 views
Hi! I am using kendo pdf viewer. The issue i have is that component behind the scenes is creating a canvas. This is not allowing me to ctrl + c. I am not sure why is this happening to me but not in the demo page. Do you have any clue what's happening ?

  <kendo-pdfviewer
    *ngIf="isPdfViewerVisible && pdfSource"
    [url]="pdfSource"
    style="height: 100%; width: 100%"
    [tools]="tools"
  ></kendo-pdfviewer>
Martin Bechev
Telerik team
 answered on 05 Aug 2025
2 answers
26 views

hi,

 

i have a snippet codes:

https://codesandbox.io/p/sandbox/adoring-galois-4cpxxm?file=%2Fsrc%2Fapp%2Fapp.component.ts%3A29%2C1

 

what i want is 

if the product name is "Chai", i want to give the "TD" cell  a speical css class name.

     <kendo-grid-column field="ProductName">
        <ng-template
          kendoGridHeaderTemplate
          let-column
          let-columnIndex="columnIndex"
        >
          {{ column.field }}({{ columnIndex }})
        </ng-template>
        <ng-template
          kendoGridCellTemplate
          let-dataItem
          let-field
          let-rowIndex="rowIndex"
        >
          <span>{{ field["ProductName"] }}</span>
        </ng-template>
      </kendo-grid-column>

 

i can get the product name by the above codes, but i dont know how to set the "TD" class name . the TD is the parent element of the span .

can you please tell me how to do this?

Zornitsa
Telerik team
 answered on 01 Aug 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?