개발꿈나무
[Blazor] Grid의 각각의 cell에 tooltip 추가하기 본문
반응형
grid에서 데이터의 길이가 칸의 width보다 긴 경우 데이터를 잘라서 표현한 후 tooltip을 추가할 것이다.
예를 들어 데이터는 abcdefg인데 cell의 길이는 5자라고 가정한다면 abcde...을 표현하고
mouseover시 tooltip에 abcdefg를 출력한다는 것이다.
<style>
.custom-ellipsis {
overflow: hidden;
max-height: 60px;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
<TelerikGrid>
<GridColumns>
<GridColumn Field="@nameof(W_DCN.STATUS)" Width="47px" Title="Status" OnCellRender="@OnCellRenderHandler">
<Template>
@{
var currItem = context as W_DCN;
if (currItem.STATUS?.Length > 21)
{
<span title="@currItem.STATUS" id="@( "tooltip-status")">@(currItem.STATUS.Substring(0,21) + "...")</span>
<TelerikTooltip TargetSelector="@( "#tooltip-status")" Position="@TooltipPosition.Top" />
}
else
{
@currItem.STATUS
}
}
</Template>
</GridColumn>
</GridColumns>
</TelerikGrid>
@code
{
protected void OnCellRenderHandler(GridCellRenderEventArgs args)
{
args.Class = "custom-ellipsis";
}
}
STATUS 컬럼에서 데이터의 길이가 21자가 넘을 경우 잘라서 표현하고 tooltip을 추가하고,
길이가 21자가 넘지 않는다면 그냥 데이터를 뿌린다.
OnCellRenderHandler 메서드는 cell의 class를 지정하여 style을 지정해주기 위한 메서드다.
(21자를 기준으로 잘랐지만 대문자, 소문자, 특수문자 등등의 상황으로 인해 차지하는 width는 달라진다. 21자로 잘랐음에도 불구하고 2줄로 표현될 경우가 있기 때문에 이런 경우 OnCellRenderHandler에서 지정해준 class의 style을 지정하여 overflow를 처리한다.)
<Reference>
Show Ellipsis for Long Content and view all Content in Tooltip in UI for Blazor | Telerik Forums
www.telerik.com
반응형
'C# > Telerik' 카테고리의 다른 글
[Blazor] Telerik Grid의 DetailTemplate에 grid 추가하기 (0) | 2022.02.25 |
---|---|
[Blazor] Telerik Grid의 특정 컬럼 header에 tooltip 추가하기 (0) | 2022.02.16 |
[Blazor] Grid에서 길이가 긴 데이터를 컬럼의 width만큼만 출력하기 (0) | 2022.02.07 |
[Blazor] Telerik - TabStrip에서 호출한 razor Page reload하기(2) - Telerik 3.0 version (0) | 2022.01.24 |
[Blazor] Telerik Grid Filter Customizing (2) - Checkbox List 필터 만들기 (0) | 2022.01.12 |
Comments