将AJAX与asp:Calendar结合使用

Using AJAX with an asp:Calendar

本文关键字:结合 Calendar AJAX asp      更新时间:2023-09-26

完全是.NET编程(和AJAX)的新手,但我已经在这个程序上工作了一段时间。我在这个问题上说的很多事情可能都没有意义,所以请纠正我的理解错误

现在我有一个ASP:Calendar,它具有以下属性:OnSelectionChanged="SelectionChanged"。因此,当用户单击日历时,会在服务器上调用SelectionChanged方法。但这需要回发,这太慢了——就我的程序而言,此时不需要服务器参与;客户端可以处理所有事情。

所以我想用javascript来处理它。有一些方法可以点击asp:Calendar来触发一段javascript代码。我是用某种ajax扩展程序来实现这一点的吗?或者还有别的办法吗?

我以前使用过jQuery日期选择器,它在选择日期时不会进行回发。

好吧,你可以使用标准的.NET AJAX控件,它们实现起来非常简单。。。。

基本上,您需要首先在标记中包含一个脚本管理器,这并不复杂。只要确保它在标签中。

您希望将页面中希望在AJAX回发中可访问的部分包装在UpdatePanel标记中。更新面板将需要一个ContentTemplate,它是所有实际页面内容的所在位置。它还需要一个Trigger标记,在该标记中指定要触发回发的控件和事件。任何要激发AJAX回发的控件都必须将其AutoPostBack属性设置为"true"。

以下是基本布局:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<ContentTemplate>
<asp:Label runat="server" ID="UpdateMe"/>
<asp:TextBox runat="server" ID="AjaxTextBox" AutoPostBack="true" OnTextChanged="AjaxTextBox_TextChanged/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="AjaxTextBox" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>

现在,我不认为这是首选的做事方法。大多数web开发人员都使用jqueryAJAX方法来处理它,但我认为这是一种快速简单的入门方法。不过,Jquery AJAX方法一点也不难。当然还有其他值得研究的地方。。。但我不喜欢使用像带有Jquery AJAX的Calendar这样的控件。对于这些情况,我使用jquery ui日历控件。与处理与Jquery AJAX混合的高度定制的.NET控件相比,转换和检查日期时间的成本是最低的。