【发布时间】:2011-07-05 15:23:48
【问题描述】:
我正在尝试使用 System.Web.UI.WebControls.Calender。
但是当我选择任何日期时,它会自动回发。有什么办法可以避免这种行为。
(我没有看到我设置为 False 以避免这种行为的常用属性 AutoPostback)
只有在用户提交表单后,我才需要选择的日期。
注意-我使用的是 VS2008
【问题讨论】:
标签: c# .net asp.net datetime webforms
我正在尝试使用 System.Web.UI.WebControls.Calender。
但是当我选择任何日期时,它会自动回发。有什么办法可以避免这种行为。
(我没有看到我设置为 False 以避免这种行为的常用属性 AutoPostback)
只有在用户提交表单后,我才需要选择的日期。
注意-我使用的是 VS2008
【问题讨论】:
标签: c# .net asp.net datetime webforms
<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 中,则可以通过使用回调来减少回发的出现。但它仍然会为每个日期或月份的点击访问服务器。
【讨论】:
使用 MS 日历是可能的。您可以在 DayRender 事件中自定义每个单元格的内容:
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
e.Cell.Text = e.Day.DayNumberText;
}
您可以将 e.Cell.Text 设置为 div 或 span 与文本和 javascript onclick 事件或链接。您可以将任何 HTML 放在那里。
【讨论】:
它回传以在 UI 上设置选定的表单。您可以做的是使用客户端日历(如 jquery ui)或使用 ajax 日历扩展器,这样它就不会回发整个页面。
【讨论】:
我通常避免避免使用 MS 日历控件,因为我发现它很难使用和样式。您是否考虑过像 jQuery UI 日期选择器这样的东西,它可以根据您的需要工作,并且在之后也更容易设置样式。
【讨论】: