0

使用 C#/ASP.NET,我想知道是否有一种方法可以使用元数据轻松生成标签和文本框的工具提示。我找到了很多关于如何在 ASP.NET MVC 中执行此操作的资源,但不是普通的 ASP.NET。我尝试过使用各种Display属性Description,但没有成功。有没有一种简单的方法来自动化这个?

例如,当鼠标悬停在生成的网页上的asp:Labelasp:TextBox对应的或对应时,我想使用如下代码显示“发送应用程序的日期”。DateSent

public class ProjectMetadata
{
    [Required(ErrorMessage = "Enter a date")]
    [Description("Date that the application was sent")]
    public object DateSent { get; set; }

    [Required(ErrorMessage = "Enter a description")]
    [StringLength(256, ErrorMessage="Description must be 256 characters or less")]
    public object Description { get; set; }
}

[MetadataType(typeof(ProjectMetadata))]
public partial class Project
{
    public DateTime DateSent { get; set; }
    public string Description { get; set; }
}

编辑 请注意,目前我让 ASP.NET 完成所有在页面上生成控件的工作(在代码隐藏中没有做任何事情):

<asp:TextBox ID="tbDateSent" runat="server" Text='<%# Bind("DateSent", "{0:d}") %>'/>

<asp:Label ID="LabelDateSent" runat="server" Text='<%# Eval("DateSent", "{0:d}") %>'/>

也许这是我需要添加的地方:ToolTip='<%# SomeExpressionHere %>'

4

1 回答 1

0

您如何填充您的 .NET 控件?我猜是这样的:

Project project = GetProject();

// TextboxProjectName is your TextBox on your Page / UserControl

TextboxProjectDescription.Text = project.Description; 
TextboxProjectDescription.Attributes["data-tooltip"] = project.DateSent.ToShortDateString(); // Or whatever format you want

然后你会有这个标记:

<input type="text" data-tooltip="Your date string" />

然后,您可以简单地使用 jQuery Tooltip 库来提示找到 data("tooltip") 的所有 HTML 元素。

编辑

尝试这个:

[MetadataType(typeof(ProjectMetadata))]
public partial class Project
{
    public DateTime DateSent { get; set; }
    public string Description { get; set; }
    public string TooltipText 
    { 
       get {
           return "Date: " + DateSent.ToShortDateString(); // whatever tooltip you want
       }
       set {}
    }
}

然后你可以按照要求做:

<asp:TextBox ID="tbDateSent" runat="server" Text='<%# Bind("DateSent", "{0:d}") %>'
ToolTip='<%# Bind("TooltipText") %>' />
于 2013-04-09T15:54:44.737 回答