使用C#/ ASP.NET,我想知道是否有办法使用元数据轻松生成标签和文本框的工具提示。我在ASP.NET MVC中找到了许多关于如何执行此操作的资源,但不是普通的ASP.NET。我尝试过使用各种Display
属性以及Description
但没有成功。有一种简单的方法可以实现自动化吗?
例如,当鼠标悬停在与asp:Label
对应的asp: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 %>'
?
答案 0 :(得分: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库来工具化所有找到数据(“工具提示”)的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") %>' />