0

我正在使用带有 asp.net MVC 3 的 aspx 视图引擎。我有一个 WebGrid 控件,可以正确显示我选择的记录和通过所选记录的页面。单击字段标题也会对数据进行排序。

问题:

  1. 如果在第二页上并且我单击任何可排序字段,则网格在排序后重新加载回第一页。我想在仍然进行排序的同时将其保留在第二页上。
  2. 在下面代码中的“级别”字段之一旁边,我想显示一个图像,鼠标悬停时将显示一个静态 DIV 层,其行为类似于描述该字段的工具提示。

似乎没有任何内置属性可以做这两件事。有解决办法吗?这是我的代码:

var grid = new WebGrid(source: Model.EmployeeList, columnNames: new[] { "Name", "Level", "Department"});

grid.GetHtml(tableStyle: "table-EmpStyle", headerStyle: "tr-header", rowStyle: "webGrid-Row", alternatingRowStyle: "webGrid-alt-Row", previousText: "Previous",nextText: "Next", numericLinksCount: 0, 
     columns: grid.Columns(
     grid.Column("Name", header: "Full Name"),
     grid.Column( "Level", header: "Level"   ),
     grid.Column("Department", header: "Department") ))

谢谢你的时间...

4

1 回答 1

0

您还需要将ajaxUpdateContainerId参数设置为 webgrid 所在容器的名称。例如:

<div id="updateWebGrid">
    @grid.GetHtml(tableStyle: "table-EmpStyle", headerStyle: "tr-header", rowStyle: "webGrid-Row", alternatingRowStyle: "webGrid-alt-Row", previousText: "Previous",nextText: "Next", numericLinksCount: 0,  ajaxUpdateContainerId: "updateWebGrid"
     columns: grid.Columns( 
         grid.Column("Name", header: "Full Name"), 
         grid.Column( "Level", header: "Level"   ), 
         grid.Column("Department", header: "Department") )) 
</div>

对于第二个问题,您需要使用列的 Format 属性来注入一些类

例如:

@helper CreateImage(string m)
{
    <div>@m <img src="#" class="someImage"/></div>
}

@grid.GetHtml(columns: new WebGridColumn[]
{
    new WebGridColumn() {ColumnName = "TestTypeId", Header = "Test Type"},
    new WebGridColumn() {ColumnName = "Name", Header = "Name", Format = m => CreateImage(m.Name)}
})

一旦你声明了这部分,当你将鼠标悬停在带有 class 的 img 标签上时,你应该使用 jQuery 来显示你的 div someImage

$(document).ready(function() {
    $(".someImage").mouseover(function() {
        $("yourDivId_Or_Class_for_Tooltip").show();
    });

    $(".someImage").mouseout(function() {
        $("yourDivId_Or_Class_for_Tooltip").show();
    });
});

就是这样。我没有检查这段代码的每一段,但这是你应该遵循的逻辑。我写了一篇关于 WebGrid 的博客文章,因此您可以查看该文章以供进一步参考:http ://apparch.wordpress.com/2012/01/04/webgrid-in-mvc3/

于 2012-04-26T19:24:34.093 回答