Ajax日历扩展器问题

Ajax Calender Extender issue

本文关键字:问题 扩展器 日历 Ajax      更新时间:2023-12-22

我有一个文本框,我想在其中存储日历的选定日期。为此,我使用了ajax日历扩展器。并将目标控件属性设置为textboxid。但当我单击同一页面的按钮时,我丢失了选定的日期(我的意思是我丢失了文本值),但我希望在单击按钮后返回选定的日期。。我的代码是

<td>
     <asp:TextBox ID="txtDate" runat="server" ReadOnly="true"></asp:TextBox>
</td>
 <td>
     <asp:ImageButton ID="imgCalender" runat="server" ImageUrl="~/Images/Calendar.png" ToolTip="Select a Date" />
   <asp:CalendarExtender ID="calShow"  runat="server" PopupButtonID="imgCalender" PopupPosition="BottomLeft" TargetControlID="txtDate" OnClientDateSelectionChanged="CheckForPastDate"></asp:CalendarExtender>
  </td>

我还希望当用户尝试选择一个大于当前日期+20天的日期时,文本框应该是空的。意味着用户必须再次选择一个合适的日期。

Javascript

var selectedDate = new Date(); 
selectedDate = sender._selectedDate; 
var todayDate = new Date(); 
if (selectedDate.getDateOnly() <= todayDate.getDateOnly()) 
{
    alert('Date Cannot be in the past or current date'); 
    sender._textbox.set_Value(null); 
} 
else if(selectedDate.getDateOnly() > todayDate.getDateOnly()) 
{
     // why is this here?
} 

在js方法中只需执行类似的操作

var today = new Date();
var twentyDays = new Date();
twentyDays.setDate(today.getDate()+20);
if (selectedDate.getDateOnly() <= todayDate.getDateOnly()) 
{
    alert('Date Cannot be in the past or current date'); 
    sender._textbox.set_Value(null); 
} 
else if(selectedDate.getDateOnly() > twentyDays.getDateOnly()) 
{
    alert('this is more than 20 days');
    sender._textbox.set_Value(null); 
    return;
}  

更新2013年12月2日

我不确定getDateOnly()方法是什么或做什么,这似乎给我带来了问题。下面的脚本是我用来测试场景和工作的。只需调整CCD_ 1变量即可进行测试。

var daysModifier = 23;
var selectedDate = new Date();
selectedDate.setDate(selectedDate.getDate() + daysModifier);
var today = new Date();
var twentyDays = new Date();
twentyDays.setDate(today.getDate()+20);
document.write(today);
document.write("<br />");
document.write(selectedDate);
document.write("<br />");
document.write(twentyDays);

if (selectedDate <= today) 
{
    alert('Date cannot be in the past or current date'); 
} 
else if(selectedDate > twentyDays) 
{
    alert('this is more than 20 days');
}