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

コントロールを初期化するだけでなく、レンダリングプロセス中のある時点でコントロールコレクションに追加する必要があります。

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

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

Jquery Datepickerを使用できます。

于 2012-04-06T16:23:52.240 に答える