我的页面中有一个<ajaxToolkit:CalendarExtender>
对象。它将所选日期放在禁用的TextBox
上(以今天日期开始填充)。我希望在该日历中有一个"无"选项,系统会对此进行默认操作(就像它有"今日"选项一样)。这可能吗?我在网上搜索了这方面的信息,但找不到任何相关的信息。我想知道我是不是错过了什么。或者我必须实现一个单独的逻辑(比如启用TextBox
,用户可以将其留空作为"无"选择)?
有没有与ajax工具箱日历扩展程序不同的日历对象可以与提供"无"选项的asp.net一起使用?
我仍然对答案持开放态度,即使我认为这只是一个"不"(至少有一点记录)。
有两种选择:第一种是在textbox旁边添加一些html元素,并用javascript处理它的点击事件。在此事件处理程序中,清除日历扩展程序。这是一个代码:
<script type="text/javascript">
function clearDate(extenderId) {
$find(extenderId).set_selectedDate(null);
}
</script>
<asp:TextBox runat="server" ID="Date1" autocomplete="off" />
<input type="button" value="x" onclick="clearDate('<%= defaultCalendarExtender.ClientID %>')" />
<br />
<ajaxToolkit:CalendarExtender ID="defaultCalendarExtender" runat="server"
TargetControlID="Date1" />
第二个解决方案是调整AjaxControlToolkit项目的来源。实际上,您只需要更改Client/MicrosoftAjax.Extended/Calendar/CalendarBehavior.pre.js
文件。用下面的代码替换它。实际上有很多代码,因为我懒得一步一步地解释每一个更改;)简言之,我已经在日历弹出页脚中添加了新的元素,以将选定日期重置为默认选定值(如果已指定)或为空。您还可以调整CalendarBehavior.pre.js 旁边的Calendar.css文件
由于对大量答案的限制,我在pastebin上发布了javascript代码粘贴到链接