我的Mvc Grid的代码如下所示,但由于某些原因,可排序和可过滤的属性不能像codePlex文档中所述那样工作。我使用html5和bootstrap.css开发.NET 4.5:
@Html.Grid(Model.Item2).Named("ViewEntries").Columns(columns =>
{
columns.Add(c => c.entryName).Titled("Entry Name").Sortable(true).Filterable(true);
columns.Add(c => c.entryDate).Titled("Date").Sortable(true);
columns.Add(c => c.entryDetails).Titled("Details").Sortable(true);
columns.Add().Titled("Name1").RenderValueAs(c => Name1((int)c.name1)).Sortable(true).Filterable(true);
columns.Add().Titled("Name2").RenderValueAs(c => Name2((int)c.name2)).Sortable(true).Filterable(true);
columns.Add().Titled("Name3").RenderValueAs(c => Name3((int)c.name3)).Sortable(true).Filterable(true);
}).WithPaging(10)
非常感谢任何帮助,谢谢。
答案 0 :(得分:14)
所以这不起作用的原因是gridmvc.css实际上并没有在布局文件中被引用。只要我添加它,过滤就可以在正常渲染的列上按预期工作。
现在我遇到的问题是过滤来处理通过html帮助器呈现的列,但这只需要一些研究来创建自定义可过滤的小部件。感谢所有帮助人员=]
答案 1 :(得分:2)
更改您的代码如下
@Html.Grid(Model.Item2).Named("ViewEntries").Columns(columns =>
{
columns.Add(c => c.entryName).Titled("Entry Name").Sortable(true).Filterable(true);
columns.Add(c => c.entryDate).Titled("Date").Sortable(true);
columns.Add(c => c.entryDetails).Titled("Details").Sortable(true);
columns.Add().Titled("Name1").RenderValueAs(c => Name1((int)c.name1)).Sortable(true).Filterable(true);
columns.Add().Titled("Name2").RenderValueAs(c => Name2((int)c.name2)).Sortable(true).Filterable(true);
columns.Add().Titled("Name3").RenderValueAs(c => Name3((int)c.name3)).Sortable(true).Filterable(true);
}).WithPaging(10).Sortable(true).Filterable(true).WithMultipleFilters()
在谷歌浏览器中使用Inspect元素(选择网格标题栏并单击右键并使用检查元素)。如果它显示下图中的类,则问题是由css或js引起的。这意味着类名以" grid开始 - "并检查grid-filter-btn是否在DOM中呈现
答案 2 :(得分:1)
过滤器弹出窗口未显示,排序工作正常。当我在_layout.cshtml" @RenderSection(" scripts",required:false)"中注释掉这一部分时过滤工作。
答案 3 :(得分:0)
过滤器未显示,因为项目中有2个.css文件
1)site.css
2)Gridmvc.css
在site.css中,这是一个样式:链接,当你点击Grid.MVC的过滤器图标时,它会被执行。
您可以删除或完成此行,然后您可以看到过滤器正在运行
th a
{
display: block;
position: relative;
}
th a:link, th a:visited, th a:active, th a:hover
{
color: #333;
font-weight: 600;
text-decoration: none;
padding: 0;
}
th a:hover
{
color: #000;
}
答案 4 :(得分:0)
我的解决方案是添加:
<link href="@Url.Content("~/Content/Gridmvc.css")" rel="stylesheet" type="text/css" />
到 head 部分
和
@Scripts.Render("~/Scripts/gridmvc.min.js")
到 正文 部分
希望这有助于某人