Telerik MVC网格过滤器不起作用

时间:2012-01-13 05:59:23

标签: asp.net-mvc-3 telerik-grid telerik-mvc

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

@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)))

4 个答案:

答案 0 :(得分:1)

为了指定网格的大小,您可以将其包装在div中:

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

另外,请确保在网格中启用排序/过滤:

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

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

还有一件事:

  

不要忘记列会扩展以容纳他们所有的   内容因此请确保您的列宽与您的父div匹配。

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

答案 1 :(得分:0)

如果您正在使用Datakeys,或者您已在网格操作方法上启用了自定义绑定,则删除它可能会解决问题。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

Telerik网格确实非常糟糕。如果数据类型是列的datetimeoffset,则过滤器将永远不会工作。