Отображать всплывающую подсказку о событии наведения мыши в MVC3 WebGrid - PullRequest
1 голос
/ 13 февраля 2012

У меня есть MVC3 WebGrid в моем представлении. Я хочу отображать всплывающую подсказку, когда мышь наводит курсор на любую строку, отображая информацию, поступающую с сервера. Я уже видел эту ссылку: Отображение всплывающей подсказки с дополнительной информацией при наведении мыши на строку WebCrid Razor MVC3

Суть в том, как мне получить идентификатор строки при событии наведения мыши, потому что информация, поступающая с сервера, будет основана на идентификаторе строки или, возможно, на счетчике. Также по этой ссылке: http://www.lullabot.com/files/bt/bt-latest/DEMO/index.html вам нужен определенный селектор, чтобы показать всплывающую подсказку. Как я могу назначить класс каждой строке WebGrid, чтобы я мог отобразить всплывающую подсказку?

1 Ответ

1 голос
/ 29 мая 2012

Вот как я это сделал. Из-за ограниченной природы 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>),
...