2012-01-13 180 views
1

我使用的Telerik MVC网格如下所示。数据显示在网格中,但 可过滤属性不起作用,虽然显示了“过滤器图标”。我已经在layout.cshtml中注册了脚本和CSS,但我不知道为什么可过滤操作不起作用有时列宽被忽略,网格呈现默认大小Telerik MVC网格过滤器不工作

@model IEnumerable<Customers> 

@(Html.Telerik() 
    .Grid(Model) 
    .Name("Customers") 
    .PrefixUrlParameters(false) 
    .Columns(columns=> 
       { 
       columns.Bound(c => c.CustomerId).Title("CustomerId").Width(50);<br/> 
       columns.Bound(c => c.CustomerStatus).Title("Customer Status").Width(70); 
       columns.Bound(c=>c.CityId).Title("CityID").Width(50); 
       } 
    .Filterable() 
    .Sortable(sort=>sort.SortMode(GridSortMode.MultipleColumn)) 
) 

layout.cshtml(注册脚本和样式表):

@(Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.vista.css").Combined(true).Compress(true))) 

@(Html.Telerik().ScriptRegistrar().Globalization(true).DefaultGroup(group => group.Combined(true).Compress(true))) 

回答

1

为了指定网格的大小,你可以在一个div包装它:

<div style="width:300px;"> 
    @(Html.Telerik()... 
</div> 

而且,请确保您在网格中启用排序/筛选功能:

.Sortable(sorting => sorting.Enabled(true)) 
.Filterable(filtering => filtering.Enabled(true)) 

如果仍然无效,请确保由Telerik脚本管理器创建的脚本文件可以由您的Web服务器提供(查看源代码,抓住.axd链接并将其粘贴到您的地址栏中)。

一两件事:

不要忘记,列将扩大,以容纳其所有 内容,以便确保您的列宽,你的父母DIV相匹配。

您还可以使用Firebug检查页面中的任何脚本问题。

+0

我用你说的.Filterable(filtering => filtering.Enabled(true))即使这不起作用。过滤器操作根本不起作用。自2天以来就陷入这个问题。即使在TELERIK FORUM中也没有正确的答案。 – Brad 2012-01-13 14:32:08

+0

您是否使用Firebug检查页面加载时发生了什么?如果是这样,输出是什么? – Nick 2012-01-13 15:00:45

+0

我在FireFox中也得到了相同的结果。其实,你想让我检查与firebug.Allscripts按预期加载。 – Brad 2012-01-13 15:40:55

0

如果您使用的是数据键或者您已经在网格动作方法上启用了自定义绑定,则删除可能会解决该问题。

0

我发现了一件非常有趣的事情。我的网格上的过滤不起作用。该图标在那里,但它不可点击。这一切都很奇怪。例如,在排序时,它将向查询字符串添加一个长尾。我花了两天的时间。直到我发现问题。我在页面上有四个标签,每个标签都加载了一个部分。每个部分都包含一个网格。前三个网格(前三个标签)工作正常。第四不是。我已经移动了第一个标签中的最后一个部分,它工作正常,但第三个标签中的网格不再工作。问题是只有三个网格在一个页面上工作。如果我在第一个选项卡上拥有所有四个网格,则只有前三个在工作,第四个不在。很奇怪。虽然没有找到问题的根源......

-1

Telerik电网真的很糟糕。如果某个数据列是datatimeoffset,那么过滤器将无法工作。