2011-06-02 65 views
0

对.NET编程(和AJAX)总共使用newb,但我一直在研究这个程序。我在这个问题中陈述的许多事情可能没有意义,所以请在我的理解关闭的地方纠正我。在asp中使用AJAX:日历

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

所以我想用JavaScript处理它。通过点击asp:Calendar触发一段JavaScript代码可以获得某种方式。我是否会用某种Ajax扩展器来做这件事?还是有另一种方式?

回答

0

好了,你可以使用标准的.NET AJAX控件,它们是实现很简单....

基本上,你需要先在您的标记脚本经理,没有什么复杂有关。只要确保它在标签中。

您想要在AJAX回发中将您想要访问的页面部分封装在UpdatePanel标签中。更新面板将需要一个ContentTemplate,这是您的所有实际页面内容所在的位置。它还需要一个触发器标签,这就是您指定想要触发回发的控件和事件的位置。任何想要触发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开发人员正在使用jQuery AJAX方法来处理它,但这是一种快速简便的方式,可以开始我想。但是,jQuery AJAX方法并不困难。当然还有其他值得研究的东西......但我不喜欢使用像Jquery AJAX一样的Calendar控件。对于这些情况,我使用jquery-ui日历控件。与处理与Jquery AJAX混合的大量自定义.NET控件相比,不得不转换和检查日期时间的代价是最小的。

+0

我明白了 - 大约一个小时之后才开始工作(不要问),我可以说更新面板对我来说肯定是非常有用的。虽然我不认为这是客户端,但它是非常重要的。 – Jeremy 2011-06-02 21:29:56

1

我在使用jQuery datepicker之前,在选择日期时没有回发。

+0

asp:Calendar不仅仅是一个日期选择器(ajax还有一个可以扩展文本框的日期选择器),它是一个完整的日历。 – Jeremy 2011-06-02 15:32:55