更新面板如何调用部分回发和服务器端功能并更新控件UI

时间:2012-06-14 06:54:56

标签: asp.net asp.net-ajax updatepanel

我搜索谷歌了解更新面板如何进行部分回发。如果我有一个按钮&更新面板内的一个标签,当我点击更新面板内的按钮时,会发生部分回发,并且按钮单击服务器端事件。如果按钮单击例程更改标签值然后影响我们得到部分回发后...我只需要如何更新面板调用服务器端功能并读取响应和更新控制UI在cliend方..它产生什么样的JavaScript和调用进行部分回发以及如何更新UI。

如果可能的话,请用更新面板生成的示例javascript详细讨论这一切,以处理所有回发和UI更新。感谢

1 个答案:

答案 0 :(得分:0)

如果您对AJAX(代表异步Javascript和XML的代表)完全陌生,维基百科上的AJAX条目是一个很好的起点,还有更多的链接,如Link1或{{ 3}}:

Like DHTML and LAMP, AJAX is not a technology in itself, but a group of technologies. AJAX uses a combination of:

    HTML and CSS for marking up and styling information.
    The DOM accessed with JavaScript to dynamically display and interact with the information presented.
    A method for exchanging data asynchronously between browser and server, thereby avoiding page reloads. The XMLHttpRequest (XHR) object is usually used, but sometimes an IFrame object or a dynamically added tag is used instead.
    A format for the data sent to the browser. Common formats include XML, pre-formatted HTML, plain text, and JavaScript Object Notation (JSON). This data could be created dynamically by some form of server-side scripting.

正如您所看到的,从纯粹的技术角度来看,这里没有什么新东西。大多数AJAX部件已经在1994年(1999年用于XMLHttpRequest对象)。真正新奇的是像Google一样使用GMail(2004)和Google Maps(2005)来使用这些部分。实际上,两个网站都对推广AJAX做出了巨大贡献。

图片胜过千言万语,下图说明了客户端与远程服务器之间的通信,以及经典和AJAX驱动的应用程序之间的差异:

alt text

对于橙色部分,您可以手动完成所有操作(使用XMLHttpRequest对象),或者您可以使用着名的JavaScript库(如jQuery,Prototype,YUI等)来“AJAXify”应用程序的客户端。这些库旨在隐藏JavaScript开发的复杂性(例如跨浏览器兼容性),但对于一个简单的功能可能有点过分。

在服务器端,一些框架也可以提供帮助(例如,如果您使用的是Java,则为DWR或RAJAX),但您需要做的只是公开一个只返回部分更新页面所需信息的服务(最初是XML / XHTML - AJAX中的X - 但现在通常首选JSON。)