0

C#/ASP.NET を使用して、メタデータを使用してラベルとテキスト ボックスのツールヒントを簡単に生成する方法があるかどうか疑問に思っていました。ASP.NET MVC でこれを行う方法に関する多くのリソースを見つけましたが、プレーンな ASP.NET ではありません。さまざまなDisplay属性を使用してみましDescriptionたが、成功しませんでした。これを自動化する簡単な方法はありますか?

たとえば、生成された Web ページで、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 %>'です。

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 ツールチップ ライブラリを使用して、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 に答える