Telerik Forums
KendoReact Forum
1 answer
8 views

Hi,

When a grid is grouped, and its scroll mode is 'virtual', drag the scroll bar down to the middle, then change the data to a smaller set of data. The grid is not rendering the new data, the scroll bar size is changed, indicating the grid is aware of the new data size, but it just doesn't render the rows.

If the Grid is not grouped, this won't be an issue.

Please see this example: https://codesandbox.io/p/sandbox/headless-leftpad-m75s56?file=%2Fapp%2Fapp.tsx

Steps to reproduce the issue:

- Use mouse to drag the grid scrollbar down to the middle.

- Click Short Data button.

- The scroll bar size has changed, but the grid is not showing data, 

- Drag the scrollbar, the grid shows the data again.

 

Thanks,

Jie

Yanko
Telerik team
 answered on 20 Nov 2025
1 answer
9 views

Hi Support,

The GanttHandle mentioned here https://www.telerik.com/kendo-react-ui/components/gantt/api/gantthandle does not appear to be exported.

This means a ref can not be used in a un typesafe manner.

 

Can this be exported in a future release?

 

Thanks

David

 

 

Yanko
Telerik team
 answered on 17 Nov 2025
1 answer
12 views

Hi kendo-react devs.

I'm coming from Kendo UI for jQuery and am beginning Kendo UI for React.

I have localisation implemented in a .net9 + react project; however, I can't get the messages/default text in the kendoui react components (grid pager) to update when the language changes.

This is an overview of the project's localization implementation:

Multi-language support**: Danish (primary), English, Greenlandic
Frontend**: react-i18next with `da.json`, `en.json`, `kl.json` translation files
Backend**: Comprehensive JSON-based localization system with `ILocalizationService` + caching
Database**: Reference data with `LocalizedNames` and `LocalizedDescriptions` JSON columns
Language Detection**: `LanguageMiddleware` extracts language from query string (?lang=da) or Accept-Language header
Kendo UI components use default English - localization not implemented

 

Do you have a project/demo app with both react-i18next and localization of kendoui messages/texts (like "items per page", etc.)?

I really appreciate any help you can provide.

Morten

Yanko
Telerik team
 answered on 11 Nov 2025
1 answer
17 views

I have implemented Selection Aggregates to count content inside cells. For this I use the onSelectionChange prop, passing a selectionChange function that calls getStatusData from '@progress/kendo-react-grid' and stores the result in the statusData state.

Recently I added a requirement to highlight the row when I select a cell in that row, so I decided to use a custom row renderer via the rows prop and pass a row component.

But here’s the problem: as soon as I started using the custom row renderer, the double-click handling that used to work via the Grid's onRowDoubleClick stopped working. I tried handling the double-click directly on the <tr> by attaching an onDoubleClick handler, but that didn't help either.

As far as I can tell, the issue is that when I click a cell, onSelectionChange fires and I update the state with the result of getStatusData (which is necessary for Selection Aggregates). That state update causes my rows to re-render, and the double-click never fires. If I don't use a custom row renderer (which I need for row highlighting), I can attach onSelectionChange on the Grid, update the state on click for Selection Aggregates, and onRowDoubleClick works.

How can I combine Selection Aggregates, row highlighting when selecting a cell (currently implemented with the custom row renderer), and double-click handling?


Link for sandbox: https://codesandbox.io/p/sandbox/keen-andras-kyzf5c

Code:

import * as React from "react";
import {
  Grid,
  GridColumn as Column,
  GridSelectionChangeEvent,
  StatusBar,
  getStatusData,
  StatusItem,
  GridCustomRowProps,
} from "@progress/kendo-react-grid";
import sampleProducts from "./gd-sample-products";

const DATA_ITEM_KEY = "ProductID";

const App = () => {
  const [statusData, setStatusData] = React.useState<StatusItem[]>([
    { type: "count", formattedValue: "0", value: 0 },
  ]);

  const selectionChange = (event: GridSelectionChangeEvent) => {
    console.log("selectionChange single-click");
    setStatusData(
      getStatusData({
        dataItems: sampleProducts,
        target: event.target,
        select: event.select,
        dataItemKey: DATA_ITEM_KEY,
      })
    );
  };

  const CustomRow = (props: GridCustomRowProps) => {
    // console.log("CustomRow props: ", props);
    const available = !props.dataItem.Discontinued;
    const noBgr = { backgroundColor: "" };
    const customBgr = { backgroundColor: "lavender", fontWeight: "bold" };

    return (
      <tr
        {...props.trProps}
        style={available ? noBgr : customBgr}
        onDoubleClick={(e) => console.log("CustomRow onDoubleClick e: ", e)}
        onClick={(e) => {
          console.log("CustomRow single click");
        }}
      >
        {props.children}
      </tr>
    );
  };

  return (
    <>
      <div style={{ padding: "5px", color: "#999" }}>
        <div>Ctrl+Click/Enter - add to selection</div>
        <div>Shift+Click/Enter - select range </div>
      </div>
      <Grid
        rows={{ data: CustomRow }}
        onRowDoubleClick={(e) => console.log("onRowDoubleClick")}
        data={sampleProducts}
        autoProcessData={true}
        dataItemKey={DATA_ITEM_KEY}
        reorderable={true}
        navigatable={true}
        defaultSelect={{
          4: [0],
          5: [0],
          6: [0],
          7: [0],
        }}
        selectable={{ enabled: true, drag: true, cell: true, mode: "multiple" }}
        onSelectionChange={selectionChange}
      >
        <Column title="Products">
          <Column field="ProductID" title="Product ID" width="100px" />
          <Column field="ProductName" title="Product Name" width="300px" />
          <Column field="UnitsInStock" title="Units In Stock" />
          <Column field="UnitsOnOrder" title="Units On Order" />
          <Column field="ReorderLevel" title="Reorder Level" />
          <Column field="Discontinued" title="Discontinued" />
          <Column field="FirstOrderedOn" title="Date" format="{0:d}" />
        </Column>
        <StatusBar data={statusData} />
      </Grid>
    </>
  );
};
export default App;

Yanko
Telerik team
 answered on 11 Nov 2025
1 answer
16 views
The chart tooltip is visible on hovering on the series, but doesn't disappear when we hover out chart or unless we click outside of the series, I want to hide the tooltip once we hover outside of series, how to achieve it? I have seen it using jquery but wasn't able to replicate it

https://www.telerik.com/forums/hide-chart-tooltips-when-leave-series
Vessy
Telerik team
 answered on 04 Nov 2025
1 answer
13 views

I am currently utilizing a KendoReact Form with an integrated DropDownList component. However, the selected value cannot be cleared by the user. I have reviewed external documentation, but a clear explanation for implementing this functionality is absent. Could you provide a coding example demonstrating how to implement a clear button on the dropdown within this form structure?  

I need to add a clear icon to my dropdown list so that the user can click it to clear the selected value

Yanko
Telerik team
 answered on 03 Nov 2025
0 answers
23 views

Hi team, 

Working with complex or even slightly nested CompositeFilterDescriptors gets confusing quick, does KendoReact contain any kind of helpers for managing a filter tree, adding, updating or removeing Composite/FilterDescriptors?

My usecase is that i need to build a composite filter desc where filters contaisn a mix of FilterDescriptor and CompositeFilterDescriptor, and im hanving trouble maintianing such an object, hence the question. 

eg:


// All search mechanisms are external to the Grid component
// eg: https://www.telerik.com/kendo-react-ui/components/grid/filtering/advanced-filtering#filtering-data-grid-through-external-textbox
{
  logic: 'and',
  filters: [
// This CompFiltDesc is controlled by a single 'Product Search' box, the goal is to find any record where
// ther code or description contains any of the text, so 'mix chef' and 'checf mix' return the same thing { logic: 'or', filters: [ { field: 'productItem.description', operator: 'contains', value: 'chef' }, { field: 'productItem.code', operator: 'contains', value: 'chef' }, { field: 'productItem.description', operator: 'contains', value: 'mix' }, { field: 'productItem.code', operator: 'contains', value: 'mix' } ] }, { field: 'quantity', operator: 'isnotnull' }, { field: 'productItem.attributes', operator: 'contains', value: 'Brand:x' } ] }

THanks,
Grant

 

 

 

Grant
Top achievements
Rank 3
Iron
Iron
Iron
 updated question on 27 Oct 2025
1 answer
17 views

I'd like to be able to render links as a Dimension value where appropriate.

The Dimension display value is defined as 

displayValue: (item: any) => string

I can't use a jsx fragment here of if I attempt to return an '< a href....' it is html encoded and rendered as html.

Ideally I'd like to add a <Link component but would settle for an <a tag

Is this achievable?

Filip
Telerik team
 updated answer on 20 Oct 2025
0 answers
14 views

Hi, I use Popover for showing error messages during validation. First it renders fine, but when I switch tabs(my app has multiple tabs) callout disappears completely. Here's how I use the component:

```ts
        <Popover
            show={show}
            anchor={inputRef.current}
            position="bottom"
            contentStyle={{ padding: '0.5em', border: 'black' }}
            collision={{ horizontal: 'flip', vertical: 'flip' }}
            appendTo={container}
        >
```Screenshot attached.

Curious
Top achievements
Rank 1
 asked on 17 Oct 2025
1 answer
15 views
Hi Telerik Team,

I’ve noticed that in the PanelBar component, the element .k-link.k-selected receives the .k-focus class even when it’s clicked with the mouse.

This behavior causes a visible focus style to appear after mouse interactions.
For our design system, we’d like to preserve focus styling only when navigating via keyboard (Tab), not when clicking with the mouse.

Could you please advise if there’s a way to adjust or override this behavior without breaking the normal tab-focus functionality?

We are currently customizing Telerik React Kendo components to match our UI/UX requirements.

Thank you!

Regards,
Bohdan
Filip
Telerik team
 answered on 17 Oct 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?