문제

하는 서버를 만들어 에서 상속되는 텍스트 상자에는 것이 자동으로 CalendarExtender 가 연결되어 있습니다.그것은 이렇게 할 수 있는가,내 새로운 제어야에서 상속 CompositeControl 까요?도했 전지만,나는 명확하지 않는 부품의 수명 주기 제어야 만들의 새 인스턴스 CalendarExtender,그리고 무엇을 제어 컬렉션을 추가해야합니다.나는 것 같다하지 않 추가 할 수 있는 페이지 또는 형태의 제어 컬렉션을 추가하면서(텍스트)제의 컬렉션은,나의 아무도는 팝업 달력 기능이 있습니다.

도움이 되었습니까?

해결책

내가 이것을 달성에 프로젝트입니다.할 만들었 CompositeControl 모두 포함된 텍스트 및 CalendarExtender.

CreateChildControls 의 방법 CompositeControl 내가 사용하는 이와 유사한 코드:

TextBox textbox = new TextBox();
textbox.ID = this.ID + "Textbox";
textbox.Text = this.EditableField.TextValue;
textbox.TextChanged += new EventHandler(HandleTextboxTextChanged);
textbox.Width = new Unit(100, UnitType.Pixel);
CalendarExtender calExender = new CalendarExtender();
calExender.PopupButtonID = "Image1";
calExender.TargetControlID = textbox.ID;
this.Controls.Add(textbox);
this.Controls.Add(calExender);

물론 있는지 확인하는 형태로 포함하는 이 CompositeControl 는 툴킷 스크립트 관리자입니다.

다른 팁

내가 이것을 알고 있는 오래된 스레드,하지만 저는 그래서 그것은 때가 비슷한 질문입니다.이것은 내가 결국 구현하며,그것은 위대한 작동합니다.하려면 제어하는 것 텍스트 상자에 단순히 밖으로 펌프 extender 동안 전화를 렌더링합니다.

Imports System.Web.UI.WebControls
Imports AjaxControlToolkit

Public Class DateTextBox
    Inherits TextBox

    Private _dateValidator As CompareValidator
    Private _calendarExtender As CalendarExtender

    Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
        MyBase.OnInit(e)

        _dateValidator = New CompareValidator
        With _dateValidator
            .ControlToValidate = ID
            Rem set your other properties
        End With
        Controls.Add(_dateValidator)

        _calendarExtender = New CalendarExtender
        With _calendarExtender
            .TargetControlID = ID
        End With
        Controls.Add(_calendarExtender)
    End Sub

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        MyBase.Render(writer)
        _dateValidator.RenderControl(writer)
        _calendarExtender.RenderControl(writer)
    End Sub
End Class

당신은 쉽게 추가할 수 있습니다 ajax 캘린더에서 서버 사용자 지정 제어합니다.를 추가할 필요가 두 응용 프로그램에서 참조.1.AjaxControlToolkit.dll 2.시스템입니다.웹.장 의 도움으로 둘째 참고 우리는 모든 속성의"CalendarExtender 에서"서버 사용자 지정 제어합니다.

하려는 경우에는 사용자를 허용하지 않을 유무를 텍스트 상자에만이 가득해 일정 extender 다음을 시도할을 얻을 선택한 날짜에서 텍스트 상자를 제어할 수 있다면 빈 문자열을 설정 텍스트 상자 속성을 읽기 전용으="True".

그 때문에 읽기 전용 컨트롤되지 않은 다시 서버입니다.에 대한 해결 방법이 다음과 같다:

protected void Page_Load(객체를 보낸 후 호출 e)

{

TextBox1.특성이 있습니다.추가("readonly","readonly");

}

도움이 되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top