0

我正在尝试构建一个在您单击文本框(在 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;                                        
    }

}

4

3 回答 3

0

您必须重写 TextBox 的 OnInit 方法并在其中编写 initCalender 代码。

 protected override void OnInit(EventArgs e) {
    CalendarExtender ce = new CalendarExtender();
    ce.ID = "calender";
    ce.TargetControlID = this.ID;     
 }
于 2012-04-06T12:31:03.903 回答
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);
}
于 2012-04-06T14:04:22.147 回答
0

您可以使用Jquery Datepicker

于 2012-04-06T16:23:52.240 回答