首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Blazorise DataGrid添加粘性报头?

如何向Blazorise DataGrid添加粘性报头?
EN

Stack Overflow用户
提问于 2020-08-04 00:18:49
回答 1查看 975关注 0票数 2

最近,我收到一个请求,要求在我的Blazor Server项目中的一个DataGrid中添加Sticky Header功能。我正在使用Blazorise,没有看到任何粘性标题的现有功能,并且在网上找到了有限的信息,所以我想我应该记录我的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2020-08-04 00:18:49

在我的回答之前,我将首先说明这个解决方案是为chrome构建的,可能需要针对不同的浏览器进行调整。

首先,我在site.css文件中添加了一个粘性标题类:

代码语言:javascript
复制
.sticky-header {
    position: sticky;
    top: 0;
    z-index: 10;
}

    .sticky-header::before {
        content: '';
        width: 100%;
        height: 1px;
        position: absolute;
        top: -1px;
        left: 0;
        background-color: #fcfcfc;
        z-index: -1;
    }

    .sticky-header + .sticky-header::after {
        content: '';
        width: 1px;
        height: 100%;
        position: absolute;
        top: 0;
        left: -1px;
        background-color: #fcfcfc;
        z-index: -1;
    }

关于css的一些注意事项。将top设置为0可将标题设置为屏幕顶部,而z-index只需设置为比周围元素更高的索引,这样它就会位于其他元素的前面。

此外,我注意到position: sticky去掉了我的边框,因此我使用了::before::after伪类来帮助充当内部边框,但这部分代码并不是粘性标头工作所必需的。

一旦你有了上面的css,你会想要把它添加到你的DataGrid中。对于您在DataGridColumns部分中定义的每个DataGridColumn,您需要添加以下代码:

代码语言:javascript
复制
<DataGrid>
   <DataGridColumns>
      <DataGridColumn HeaderCellClass="sticky-header" TItem="TEntity" Field="@nameof(TEntity.SomeProperty)" Caption="Some Caption" />
   </DataGridColumns>
</DataGrid>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63233158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档