2011-04-09 2 views

답변

7

현재 버전의 Toolkit에서 선택 가능한 날짜를 제한하는 것이 지원되지 않는다고 생각합니다.

어떻게 사용자가 오늘보다 이전 날짜를 선택하지 않도록 또는 오늘보다 더 큰

가있을 수 있습니다 인스턴스 곳을 만드는이 선택한 날짜를 ClientDateSelectedChanged - 이벤트를 처리하고 확인하는 간단한 해결 방법입니다 사용자가 현재 날짜보다 일찍 선택하는 것을 원하지는 않습니다. 예를 들면 : 티켓을 예약 할 양식을 사용자에게 제공 할 때 이전 날짜를 선택하는 것을 원하지 않을 것입니다. 이 요구 사항을 충족 시키려면 다음 javascript 코드를 사용하십시오.

방지 코드 오늘보다 이전

<head runat="server"> 
    <title>Calendar Extender</title> 
    <script type="text/javascript"> 

    function checkDate(sender,args) 
    { 
     if (sender._selectedDate < new Date()) 
     {  
      alert("You cannot select a day earlier than today!"); 
      sender._selectedDate = new Date(); 
      // set the date back to the current date 
      sender._textbox.set_Value(sender._selectedDate.format(sender._format)) 
     } 
    } 
    </script> 
</head> 

전화 날짜를 선택에서 사용자 : 오늘

<form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <div> 

      <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      <cc1:CalendarExtender ID="CalendarExtender1" 
      runat="server" OnClientDateSelectionChanged="checkDate" TargetControlID="TextBox1" /> 

     </div> 
    </form> 

선택 날짜보다 큼

자바 스크립트에서이 줄을 변경하십시오. sender._selectedDate > new Date() 참고 : 사용자가 텍스트 상자에 입력하거나 유효하지 않은 날짜를 입력하여 날짜를 변경할 수 있다고 주장 할 수 있습니다. ValidationControl을 사용하여 쉽게 처리 할 수 ​​있으며 다음 팁에서 ​​다룹니다. 일정이 CalendarExtender과 관련된 텍스트 상자에 ValidationControl을 추가하는 것입니다에

는 CalendarExtender 컨트롤

에 유효성 검사를 추가하는 간단한 방법을 유효성 검사를 추가합니다. 다음 두 가지 중에서 선택할 수 있습니다.

  1. ValidationControlExtender을 추가하십시오. 이렇게하려면 ValidationControl을 끌어다 놓고 ValidationControl의 스마트 태그를 클릭하고 Add Extender을 선택하십시오. Extender 마법사에서 ValidatorCalloutExtender을 선택하십시오. 이 접근 방식을 사용하면 제어 익스텐더를 찾고 컨트롤에 쉽게 첨부 할 수 있습니다. VS 2005에서는 제어 익스텐더를 연결하여 수동으로이 프로세스를 수행해야했습니다.
  2. Extender를 추가하지 않도록 선택할 수 있습니다. 옵션 A를 진행합니다. TextBoxValidationControls 두 개를 추가합니다. 첫 번째는 사용자가 유효하지 않은 날짜 (예 : 5 월 32 일)를 입력하지 않았는지 확인하고 RangeValidator을 입력하여 원하는대로 날짜 범위를 유지하는지 확인하는 CompareValidator입니다.페이지의 뒤에있는 코드에서 CompareValidator

    <asp:CompareValidator ID="CompareValidator1" runat="server" 
           ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="Invalid Date" 
           Operator="DataTypeCheck" Type="Date"> 
    </asp:CompareValidator> 
    <cc1:ValidatorCalloutExtender ID="CompareValidator1_ValidatorCalloutExtender" 
           runat="server" Enabled="True" TargetControlID="CompareValidator1"> 
    </cc1:ValidatorCalloutExtender> 
    Adding RangeValidator – We will restrict the user to select a date range starting from today to 15 days from now. 
    <asp:RangeValidator ID="RangeValidator1" runat="server" 
           ControlToValidate="TextBox1" ErrorMessage="RangeValidator" 
           Type="Date"> 
    </asp:RangeValidator> 
    <cc1:ValidatorCalloutExtender ID="RangeValidator1_ValidatorCalloutExtender" 
           runat="server" Enabled="True" TargetControlID="RangeValidator1"> 
    </cc1:ValidatorCalloutExtender> 
    

    추가

, 그럼이 코드 C#을

protected void Page_Load(object sender, EventArgs e) 
{ 
    RangeValidator1.MinimumValue = System.DateTime.Now.ToShortDateString(); 
    RangeValidator1.MaximumValue = System.DateTime.Now.AddDays(15).ToShortDateString(); 
} 

VB.NET

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) 
     RangeValidator1.MinimumValue = System.DateTime.Now.ToShortDateString() 
     RangeValidator1.MaximumValue = System.DateTime.Now.AddDays(15).ToShortDateString() 
End Sub 

를 추가하는 몇 가지 팁했다과 관련된. 툴킷의 향후 버전이 출시되면서이 기능을 구현하는 더 쉬운 방법이 존재할 것으로 기대됩니다.에서

는 : http://www.dotnetcurry.com/ShowArticle.aspx?ID=149


또 다른 진보 된 방법은 CalendarExtender의 자바 스크립트를 확장하는 것입니다,하지만 당신은 아약스 툴킷의 사용자 정의 버전을 가지고있다. 페이지로드 에서 DateTime.Now.Date에 달력 연장의

http://codegoeshere.blogspot.com/2007/06/extending-calendarextender.html

2

설정 STARTDATE 속성이 내가이 자바 스크립트 alerp 접근을 방지 할 수 있다고 생각 해달라고하거나 선택되지

관련 문제