介绍如何输出页面的局部html到客户端
往往看到有很多人使用web服务下载一堆(复杂格式编码过的)数据,然后使用相当复杂的客户端脚本代码来生成html指令进行显示。这样做累不累呀?有没有必要啊?
实际上,我们可以返回aspx页面的局部内容,可以把所下载到的html代码直接使用InnerHTML方法刷新到html对象上面。
假设我们有一个aspx页面,它上面有一个PlaceHolder名字叫做PlaceHolder1,我们希望当url参数xxx=1的时候就单单输出这个局部部分的html,就可以这样编写后台代码:
- C# code
-
public override void VerifyRenderingInServerForm(Control control) { //base.VerifyRenderingInServerForm(control); } protected override void Render(HtmlTextWriter writer) { if (this.Request.QueryString["xxx"] != null && this.Request.QueryString["xxx"]=="1") this.PlaceHolder1.RenderControl(writer); else base.Render(writer); }
至于你的客户端脚本如何请求一个aspx页面,有很多种方式。你可以使用脚本直接以http的Get命令下载一个文件的方式;也可以使用ajax访问一个web服务来返回字符串,然后这个web服务再间接在服务器上get这个网页(反正这是本地)。
我们在url参数中不仅仅标记xxx,而且可以包含页号等等的更多信息,让aspx给我们直接下载复杂的html到客户端,而不是仅仅下载一堆数据到客户端。
|