【发布时间】:2013-11-29 13:15:36
【问题描述】:
我有一个文本框,我想在其中存储选定的日历日期。为此,我使用了ajax 压延机。并将目标控件属性设置为文本框 id。但是当我单击同一页面的按钮时,我丢失了选定的日期(我的意思是我丢失了文本值)但我想在单击按钮后选择日期.. 我的代码是
<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?
}
【问题讨论】:
-
我认为
ReadOnly属性是您的问题。 -
感谢它运行良好.. 但我不希望用户手动在文本框中插入日期,这就是我将只读属性设置为 true 的原因。还有其他方法可以做到这一点
-
改用
CSS禁用文本框?至于您关于检查日期的其他查询,您不只是在“CheckForPastDate”函数中处理吗? -
我没有给你“CheckForPastDate”功能?你能解释一下吗?
-
在您发布的标记中,您有一个
OnClientDateSelectionChanged事件正在处理,我假设有一个JavaScript方法正在处理此事件。
标签: ajax javascript asp.net .net ajax ajaxcontroltoolkit