---
title: Refresh a Chart Inside a Drawer
description: How to refresh a Chart within a Drawer content.
type: how-to
page_title: Refresh a Chart Inside a Drawer
slug: drawer-kb-chart-refresh
position:
tags:
ticketid: 1583102
res_type: kb
---
## Environment
Product |
Drawer for Blazor, Charts for Blazor |
## Description
This knowledge base article answers the following questions:
* How do I refresh a Chart inside a Drawer?
* Is it possible to refresh a Chart when the Drawer is expanded?
## Solution
1. To indicate when the Chart requires a refresh, create a bool flag and set it within the Drawer's [`ExpandedChanged`](slug:drawer-events#expandedchanged) handler.
2. Call the Chart's [`Refresh()` method](slug:components/chart/overview#chart-reference-and-methods) within the `OnAfterRenderAsync` lifecycle method. Set a brief delay to allow the Drawer to finish expanding before the refresh.
````RAZOR
Toggle Drawer
@code {
private TelerikDrawer DrawerRef { get; set; }
private TelerikChart ChartRef { get; set; }
private bool Expanded { get; set; }
private bool ShouldRefreshChart { get; set; }
private async Task ExpandedChanged(bool newExpanded)
{
Expanded = newExpanded;
ShouldRefreshChart = true;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (ShouldRefreshChart)
{
ShouldRefreshChart = false;
await Task.Delay(500);
ChartRef.Refresh();
}
await base.OnAfterRenderAsync(firstRender);
}
protected override void OnInitialized()
{
HeatmapData = GetMyHeatmapData();
}
#region Drawer Data
private IEnumerable Data { get; set; } =
new List
{
new DrawerItem { Text = "Page", Icon = SvgIcon.Plus}
};
public class DrawerItem
{
public string Text { get; set; }
public ISvgIcon Icon { get; set; }
}
#endregion
#region Chart Data
private List HeatmapData { get; set; }
private List GetMyHeatmapData()
{
List data = new List()
{
new MyHeatmapDataModel("John", 14, 1, "Mon"),
new MyHeatmapDataModel("Idell", 8, 2, "Mon"),
new MyHeatmapDataModel("Ines", 13, 3, "Mon"),
new MyHeatmapDataModel("Stephen", 22, 4, "Mon"),
new MyHeatmapDataModel("John", 7, 1, "Tue"),
new MyHeatmapDataModel("Idell", 18, 2, "Tue"),
new MyHeatmapDataModel("Ines", 2, 3, "Tue"),
new MyHeatmapDataModel("Stephen", 5, 4, "Tue"),
new MyHeatmapDataModel("John", 10, 1, "Wed"),
new MyHeatmapDataModel("Idell", 11, 2, "Wed"),
new MyHeatmapDataModel("Ines", 20, 3, "Wed"),
new MyHeatmapDataModel("Stephen", 15, 4, "Wed")
};
return data;
}
private class MyHeatmapDataModel
{
public MyHeatmapDataModel() { }
public MyHeatmapDataModel(string devName, int commits, int week, string day)
{
DeveloperName = devName;
CommitsNumber = commits;
Week = week;
Day = day;
}
public string DeveloperName { get; set; }
public int CommitsNumber { get; set; }
public int Week { get; set; }
public string Day { get; set; }
}
#endregion
}
````
## See Also
* [Drawer Events](slug:drawer-events)
* [Charts Overview](slug:components/chart/overview)
* [Prevent Drawer from collapsing on item click](slug:drawer-kb-prevent-collapse)