Css 如何将字体样式应用于筛选的列标题?

Css 如何将字体样式应用于筛选的列标题?,css,kendo-grid,Css,Kendo Grid,我在应用程序中有剑道网格,它的have filterable true选项。我的要求是当我们对列应用过滤时,列标题字体样式将更改为斜体。如何操作?如果有人对此有想法,请告诉我。我个人没有使用剑道网格,但我很快尝试了演示, 并发现它将“k-state-active”类添加到 据我所知,这在纯CSS中是不可能的 你需要一些javascript。以下是使用jQuery的可能解决方案: // adding click event handler to the "Filter" and "Clear" b

我在应用程序中有剑道网格,它的have filterable true选项。我的要求是当我们对列应用过滤时,列标题字体样式将更改为斜体。如何操作?如果有人对此有想法,请告诉我。

我个人没有使用剑道网格,但我很快尝试了演示, 并发现它将“k-state-active”类添加到

据我所知,这在纯CSS中是不可能的

你需要一些javascript。以下是使用jQuery的可能解决方案:

// adding click event handler to the "Filter" and "Clear" buttons
$('form.k-filter-menu .k-button').click(function(e) {
  setTimeout(function() {
    // first make all headers normal, then make the filtered column header italic
    $('th.k-header.k-filterable').css('font-style', 'normal').filter(
      ':has(> .k-grid-filter.k-state-active)').css('font-style', 'italic');
  }, 100);
})
之所以使用setTimeout,是因为“k-state-active”类仅在过滤数据后添加。同样,我不熟悉剑道网格,所以我不知道是否有办法为过滤器提供回调方法。您可能需要对此进行调查,因为如果您有一个巨大的数据集,100毫秒的延迟可能不够长

我为jQuery特定的解决方案道歉。啊。。。没有jQuery我什么都做不了。羞耻


但希望这对你有帮助!如果您需要任何进一步的帮助,请告诉我。

我个人没有使用剑道格网,但我很快尝试了演示, 并发现它将“k-state-active”类添加到

据我所知,这在纯CSS中是不可能的

你需要一些javascript。以下是使用jQuery的可能解决方案:

// adding click event handler to the "Filter" and "Clear" buttons
$('form.k-filter-menu .k-button').click(function(e) {
  setTimeout(function() {
    // first make all headers normal, then make the filtered column header italic
    $('th.k-header.k-filterable').css('font-style', 'normal').filter(
      ':has(> .k-grid-filter.k-state-active)').css('font-style', 'italic');
  }, 100);
})
之所以使用setTimeout,是因为“k-state-active”类仅在过滤数据后添加。同样,我不熟悉剑道网格,所以我不知道是否有办法为过滤器提供回调方法。您可能需要对此进行调查,因为如果您有一个巨大的数据集,100毫秒的延迟可能不够长

我为jQuery特定的解决方案道歉。啊。。。没有jQuery我什么都做不了。羞耻


但希望这对你有帮助!如果您需要任何进一步的帮助,请告诉我。

只需一行CSS即可:

.k-filterable a.k-grid-filter.k-state-active ~ .k-link {font-style:italic;}

无需使用java脚本。

只需一行CSS即可:

.k-filterable a.k-grid-filter.k-state-active ~ .k-link {font-style:italic;}

不需要使用java脚本。

Yaa非常感谢,它在localhost中运行良好,但不应用于服务数据。为什么?我调试了解决方案,但没有收到任何错误。你是说它在localhost中工作,但在生产环境中不工作?您是否可以共享指向该页面的链接,使其无法工作?您是否尝试增加
setTimeout
延迟?也许您的数据集在生产环境中更大,并且需要更多的时间进行过滤。另一个选项是使用
setInterval
而不是
setTimeout
。尝试一下并让我知道。是的,非常感谢,它在本地主机上运行良好,但没有应用于服务数据。为什么?我调试了解决方案,但没有收到任何错误。你是说它在本地主机上运行,但在生产环境中不工作?您是否可以共享指向该页面的链接,使其无法工作?您是否尝试增加
setTimeout
延迟?也许您的数据集在生产环境中更大,并且需要更多的时间进行过滤。另一个选项是使用
setInterval
而不是
setTimeout
。试试看,让我知道。这真的有效吗?我没有看到任何带有“k-link”类的元素。您在哪里看到了类为“k-link”的元素?请使用开发人员工具选择网格。很难解释在哪里可以看到它。你得玩弄它。对我来说,这在Site.css(mvc项目)中起到了作用。我不确定我们是否看到了相同的东西:P我用[]中的一个进行了测试。使用jQuery,$('.k-filterable.k-link')没有返回任何内容。但我很高兴您的解决方案适用于@user2138545:)我在City列上做了一个过滤器(不管是哪一个),并在firefox的开发工具中使用了inspect元素选项。我确实在这个网格中看到了“.k-filterable”,但没有看到“.k-link”。但我肯定它在我的项目中。我用了同样的方法。我唯一能想到为什么它没有出现,是因为我有一个不同的剑道/css版本:p这当然是可能的。谢谢你的回复!这真的有效吗?我没有看到任何带有“k-link”类的元素。您在哪里看到了类为“k-link”的元素?请使用开发人员工具选择网格。很难解释在哪里可以看到它。你得玩弄它。对我来说,这在Site.css(mvc项目)中起到了作用。我不确定我们是否看到了相同的东西:P我用[]中的一个进行了测试。使用jQuery,$('.k-filterable.k-link')没有返回任何内容。但我很高兴您的解决方案适用于@user2138545:)我在City列上做了一个过滤器(不管是哪一个),并在firefox的开发工具中使用了inspect元素选项。我确实在这个网格中看到了“.k-filterable”,但没有看到“.k-link”。但我肯定它在我的项目中。我用了同样的方法。我唯一能想到为什么它没有出现,是因为我有一个不同的剑道/css版本:p这当然是可能的。谢谢你的回复!