例如,在stackoverflow上,当您对某个问题进行投票或投票时,会做一个回发来更新数据库,我敢打赌他们没有使用更新面板.
我有什么
我有一张表格数据.当我点击“td”项作为整列时,我想对数据库进行更新,并且还会自动更新页面上的gridview. gridview显示表中的所有当前点击的项目,因为它是通过“我们的方法”更新…
请帮助,寻找一个很好的通用方法,我可以使用很多异步回发,没有更新面板.
寻找一些很好的教程?
多谢你们.
斯科特.
解决方法
> Stack Overflow正在使用针对ASP.NET MVC控制器操作的AJAX请求,而不是独立的ASPX页面.您可以将其视为ASP.NET AJAX页面方法的MVC模拟.在这两种情况下,ASPX方法在性能方面都将落后.
> Stack Overflow的AJAX请求返回JSON序列化结果,而不是任意的明文或HTML.这使得客户端处理更标准化并且通常更清洁.
例如:当我投了赞成这个问题,XmlHttpRequest请求是/ questions / 171000 / vote,POST数据中的“voteTypeId”为2.
处理该请求的控制器将我的投票添加到某个表中,然后使用此JSON进行响应:
{"Success":true,"Newscore":1,"Message":"","LastVoteTypeId":2}
使用该信息,此JavaScript负责更新客户端显示:
var voteResult = function(jClicked,postId,data) { if (data.Success) { jClicked.parent().find("span.vote-count-post").text(data.Newscore); if (data.Message) showFadingNotification(jClicked,data.Message); } else { showNotification(jClicked,data.Message); reset(jClicked,jClicked); if (data.LastVoteTypeId) { selectPrevIoUsVote(jClicked,data.LastVoteTypeId); } } };
如果您使用的是WebForms,那么在我的博客上找到的调用页面方法的例子绝对是在正确的球场.
但是,我建议您将Web服务视为任何集中式功能(如此投票示例),而不是页面方法.页面方法似乎更容易编写,但它们也具有一些重用的缺点,并且往往会提供一种不是真正存在的附加安全性的错觉.
这是一个做同样事情的例子,但是使用Web服务(这个帖子的评论实际上导致了你发现的帖子):
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/