在grid.GetHtml中为标题添加属性标题

时间:2014-03-05 15:38:01

标签: asp.net-mvc

我在MVC中有一个这样的网格:

@grid.GetHtml(columns: grid.Columns(
    grid.Column("WorkHours", header: "C.H. ↑↓",style: "text-align-center"),
        grid.Column("BasicWage", "Vc.Base ↑↓", style: "text-align-center", format: (item) => item.BasicWage.ToString() + " €"),
        grid.Column("WageComplement", "Cmpl. ↑↓", style: "text-align-center"),
        grid.Column("SubsMeal", "Sub.Ref. ↑↓", style: "text-align-center"),
        grid.Column("WageVariableIndex", "Rem.Var.Ind. ↑↓", style: "text-align-center"),
        grid.Column("WageVariableNonAdjustable", "Rem.Var. Ñ Reg. ↑↓", style: "text-align-center"),htmlAttributes: new { @class="compSalTable"})

现在我想在标题中添加标题,这样当鼠标悬停在标题上时会显示文字。

在html代码中你这样做:

<table>
    <th title="Work Hours"> C.H. ↑↓ </th>
    ....
</table>

如何在MVC网格中执行此操作?

1 个答案:

答案 0 :(得分:0)

我认为没有内置的方法可以做到这一点。您可以在signature中看到WebGrid.Column只为帐户添加了一个字符串(无法指定HTML属性)。

您可能需要使用的是使用Javascript hack。例如:

// hopefully you can render this lookup part using a Razor loop
var titleLookup = {
    "C.H. ↑↓", "Work Hours",
    "Vc.Base ↑↓", "Basic Wage",
    ...
};

$("table th").each(function() {
    $(this).attr("title", titleLookup[$(this).text().trim()));
});

这是您经常遇到任何类似WebGrid的RAD类型的问题。很快你就会需要一个不受支持的功能,实现基本功能变得非常繁琐。