将AJAX与asp:Calendar一起使用

时间:2011-06-02 15:20:59

标签: javascript asp.net ajax

.NET编程(和AJAX)的全新内容,但我一直在研究这个程序。我在这个问题中陈述的许多事情可能没有意义,所以请在我理解的地方纠正我。

现在我有一个ASP:具有此属性的日历:OnSelectionChanged =“SelectionChanged”。因此,当用户单击日历时,将在服务器上调用SelectionChanged方法。但这需要一个回发,这是疯狂的慢 - 就我的程序而言,此时不需要服务器参与;客户可以处理所有事情。

所以我想用javascript来处理它。有一种方法可以点击asp:Calendar来触发一段javascript代码。我是否使用某种ajax扩展器来做这件事?或者还有另一种方式吗?

2 个答案:

答案 0 :(得分:1)

我使用jQuery datepicker之前选择日期时不进行回发。

答案 1 :(得分:0)

好吧,你可以使用标准的.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-devs都使用jquery AJAX方法来处理它,但我认为这是一种快速简便的入门方式。但是,Jquery AJAX方法并不困难。当然还有其他值得研究的东西......但我不喜欢像Jquery AJAX那样使用Calendar这样的控件。对于这些情况,我使用jquery-ui日历控件。与处理与Jquery AJAX混合的大量定制的.NET控件相比,转换和检查日期时间的成本是最小的。