4

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

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

我仍然愿意回答,即使它只是一个“不”(至少有一点记录)。

4

1 回答 1

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 Pastebin 链接上发布了 javascript 代码

于 2012-09-27T14:26:48.573 回答