如何在扩展类中向文本框添加属性

时间:2015-01-01 14:21:33

标签: c# asp.net textbox

我已经为Textbox创建了一个扩展类,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyApplication.App_Code 
{
    public class DateTextBox : TextBox
    {
        protected override void OnPreRender(EventArgs e)
        {
           //this is what iwant to do :
           //((TextBox)sender).Attributes.Add("placeholder", "dd/mm/yyyy");
           base.OnPreRender(e);
        }
    }
}

我需要添加一个"占位符"属于prerender上的文本框控件,但我不确定如何引用发件人文本框控件。

4 个答案:

答案 0 :(得分:3)

您只需使用this

this.Attributes.Add("placeholder", "dd/mm/yyyy");

答案 1 :(得分:3)

当前实例是您的文本框。使用this.Attributes

    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);
        this.Attributes.Add("placeholder", "dd/mm/yyyy");
    }

答案 2 :(得分:2)

你不需要寄件人。您的类实例本身代表文本框。

所以简单地使用:

Attributes.Add("placeholder", "dd/mm/yyyy");

记住,this会自动考虑。所以上面的陈述与:

相同
this.Attributes.Add("placeholder", "dd/mm/yyyy");

答案 3 :(得分:1)

在@ kind.code上添加你需要在

之后写出attributes.add
protected override void OnPreRender(EventArgs e)
{
  // Run the OnPreRender method on the base class. 

    base.OnPreRender(e);
  // Add Attributs on textbox
    this.Attributes.Add("placeholder", "dd/mm/yyyy");
}

另一个选项

我认为你不需要完成Textbox的所有覆盖 你可以写简单的..as

<asp:TextBox ID="TextBox1" runat="server" placeholder="dd/mm/yyyy" ></asp:TextBox>