创建一个继承自文本框的类,可以在单击时显示日历

时间:2012-04-06 11:22:19

标签: asp.net inheritance textbox calendar

我正在尝试构建一个当您单击文本框时弹出的日历(在asp.net中); 对于这个任务,我构建了一个继承自文本框的新类,并且在新的类构造函数中我放了日历实例,但问题是,当我在新的类中时,我只得到文本框控件并且在单击时我没有得到日历。 有没有人有想法或如何解决这个问题?我的代码是:

public class TextBoxCalendar : TextBox
{
public TextBoxCalendar( int id)
{
      this.ID = id.toString();
      initCalender();        
}

    private void initCalender()
    {        
        CalendarExtender ce = new CalendarExtender();
        ce.ID = "calender";
        ce.TargetControlID = this.ID;                                        
    }

}

3 个答案:

答案 0 :(得分:0)

你必须覆盖TextBox的OnInit方法并在其中写入initCalender代码。

 protected override void OnInit(EventArgs e) {
    CalendarExtender ce = new CalendarExtender();
    ce.ID = "calender";
    ce.TargetControlID = this.ID;     
 }

答案 1 :(得分:0)

除了初始化控件之外,您还需要在渲染过程中的某个时刻将其添加到控件集合中:

protected override void Render(HtmlTextWriter writer)
{
    CalendarExtender ce = new CalendarExtender();
    ce.ID = "calender";
    ce.TargetControlID = this.ID;  
    Controls.Add(ce);

    //render the contents to the screen
    RenderContents(writer);
}

答案 2 :(得分:0)

您可以使用Jquery Datepicker