在MVC3 WebGrid中显示鼠标悬停事件的工具提示

时间:2012-02-13 10:32:11

标签: asp.net-mvc-3 onmouseover tooltip webgrid

我的View中有一个MVC3 WebGrid。我想在鼠标悬停在任意行上时显示工具提示,显示来自服务器的信息。我已经看过这个链接: Show a tooltip with more info when mousover a MVC3 Razor WebGrid row

我的观点是,如何在mouseover事件中获取行的ID,因为来自服务器的信息将基于行ID或计数。此外,在此链接中: http://www.lullabot.com/files/bt/bt-latest/DEMO/index.html 你需要一个选择器来显示工具提示。那么如何为WebGrid的每一行分配一个类,以便我可以显示工具提示?

1 个答案:

答案 0 :(得分:1)

我是这样做的。由于默认WebGrid的性质有限,你只剩下几个选项...我需要这个与IE6一起工作,找不到适合所有浏览器的jQuery插件,所以我选择了选项1。 :这有点脏了

1 - 滚动你自己的HtmlHelper 2 - 使用WebGrid的第三方替代方案 3 - 使用jQuery插件

HtmlHelpers.cs

/// <summary>
/// This class contains various methods for supplementing the usage of html within the Razor view pages
/// </summary>
public static class HtmlHelpers
{
    /// <summary>
    /// This method truncates a string to a given length for display within a WebGrid or elsewhere as a tooltip
    /// </summary>
    /// <param name="helper">Generic parameter needed to recognize HtmlHelper syntax</param>
    /// <param name="input">This is the string to truncate</param>
    /// <param name="length">The length of the string to truncate to</param>
    /// <returns>Html representing a tooltip, if needed</returns>
    public static IHtmlString ToolTip(this HtmlHelper helper, String input, int length)
    {
        if (input.Length <= length)
            return new MvcHtmlString(input);

        else
            return new MvcHtmlString(String.Format("<span title=\"{2}\">{0}{1}</span>", input.Substring(0, length), "...", input));

    }
}

YourView.cshtml

grid.Column(columnName: "Detail", header: "Description", format: @<text>@Html.Truncate((string)item.Detail,50)</text>),