我的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的每一行分配一个类,以便我可以显示工具提示?
答案 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>),