【问题标题】:To disable autopostback for Calender Control in ASP.net在 ASP.net 中禁用日历控件的自动回发
【发布时间】:2011-07-05 15:23:48
【问题描述】:

我正在尝试使用 System.Web.UI.WebControls.Calender。

但是当我选择任何日期时,它会自动回发。有什么办法可以避免这种行为。

(我没有看到我设置为 False 以避免这种行为的常用属性 AutoPostback)

只有在用户提交表单后,我才需要选择的日期。

注意-我使用的是 VS2008

【问题讨论】:

    标签: c# .net asp.net datetime webforms


    【解决方案1】:
    • 您不能禁用标准日历控件的“自动回发”
    • 我认为你可以使用 AjaxToolkit 中的 CalendarExtender

    <asp:TextBox ID="txtCalendarExtender" runat="server"></asp:TextBox> 
    <cc3:CalendarExtender ID="Calendar1" PopupButtonID="imgPopup" runat="server" TargetControlID="txtCalendarExtender" Format="dd/MM/yyyy"> 
    </cc3:CalendarExtender> 
    

    记得在页面顶部添加此代码:

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc3" %>
    

    记住,有一个关于这个话题的论坛PLBlum says:

    ASP.NET 中包含的日历控件仅使用回发。如果您将 Microsoft ASP.NET AJAX 添加到页面并将日历放入 UpdatePanel 中,则可以通过使用回调来减少回发的出现。但它仍然会为每个日期或月份的点击访问服务器。

    【讨论】:

      【解决方案2】:

      使用 MS 日历是可能的。您可以在 DayRender 事件中自定义每个单元格的内容:

      protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
          {
              e.Cell.Text = e.Day.DayNumberText;
          }
      

      您可以将 e.Cell.Text 设置为 div 或 span 与文本和 javascript onclick 事件或链接。您可以将任何 HTML 放在那里。

      【讨论】:

        【解决方案3】:

        它回传以在 UI 上设置选定的表单。您可以做的是使用客户端日历(如 jquery ui)或使用 ajax 日历扩展器,这样它就不会回发整个页面。

        【讨论】:

          【解决方案4】:

          我通常避免避免使用 MS 日历控件,因为我发现它很难使用和样式。您是否考虑过像 jQuery UI 日期选择器这样的东西,它可以根据您的需要工作,并且在之后也更容易设置样式。

          http://jqueryui.com/demos/datepicker/#inline

          【讨论】:

          • 谢谢霍克斯比。但我在网站上没有看到任何关于如何使用它的说明。您是否知道任何网站都有关于相同的分步说明?其实我是 Jquery 的新手..非常感谢
          猜你喜欢
          • 2011-02-22
          • 1970-01-01
          • 2011-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多