可以在ajax工具包日历扩展器中添加“无”选项吗?

时间:2012-08-21 11:59:28

标签: asp.net calendarextender

我的页面中有一个<ajaxToolkit:CalendarExtender>对象。它将选定的日期放在已禁用的TextBox上(在今天的日期开始时填充)。 我希望该日历中有一个“无”选项,系统将对其执行默认操作(就像它具有今日选项一样)。这可能吗?我在互联网上搜索了有关这方面的信息,但我找不到任何相关信息。我想知道我是否错过了什么。或者我是否必须实现单独的逻辑(例如启用TextBox,用户可以将其留空作为'无'选项)?

是否有与ajax工具包日历扩展程序不同的日历对象,可以与提供“无”选项的asp.net一起使用?

我仍然愿意接受答案,甚至认为这只是一个'不'(至少有一点记录)。

1 个答案:

答案 0 :(得分:2)

有两个选项可用:第一个是在文本框旁边添加一些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文件。将其替换为下面的代码。实际上有很多代码,因为我太懒了,不能一步一步地解释每个变化;) 简而言之,我已将新元素添加到日历弹出页脚,以将所选日期重置为默认选定值(如果已指定)或为null。您也可以调整CalendarBehavior.pre.js旁边的 Calendar.css 文件

由于对巨大答案的限制,我在pastebin上发布了javascript代码 Pastebin link