如何使用rendercontrol?高手教你操作技巧!

吉云

我给大家说说一个叫“RenderControl”的玩意儿。就是把服务器控件里的内容给整出来,弄成能在浏览器里看的东西。听着挺玄乎,但做起来还行,我来给你们捋捋。

最初,我是想把一个用户控件动态地给加到网页上。我就想着用这个 RenderControl 方法试试水。于是我就在网站里头,建一个用户控件,往里边写点文件,又拖一张图片进去,准备工作先做足。

如何使用rendercontrol?高手教你操作技巧!

我得想办法把这个控件给“渲染”出来。我先是建一个 HtmlTextWriter 的实例,这玩意儿能帮我把控件的内容写到一个输出流里头。然后我就调用 RenderControl 方法,把这个 HtmlTextWriter 对象传进去。这里有个坑,RenderControl 虽然能把控件的 HTML 内容给捣鼓出来,但是它不会去执行 OnPreRender 这个方法。偏偏服务器控件一般都会重写这个 OnPreRender,所以这里得留个心眼。

然后我试着用 Render 这个方法,它是用来把服务器控件的内容发送给提供的 HtmlTextWriter 对象的。但这个过程中,我发现我得先把一些数据准备比如说,我得设置一下输出的字符集是还得告诉浏览器这个输出是个啥类型的东西。

这块儿我用这么几个语句:

  • 先把输出缓冲区给清空。
  • * = true; 打开缓冲区。
  • * = "utf-8"; 设置字符集为 utf-8。
  • *("Content-Disposition", "attachment;filename=" + strName + ".xls"); 加一个响应头,告诉浏览器这是个附件,得下载下来,文件名也给它定

我还试试把一个 GridView 控件里的东西导成 Excel。这个过程也差不多,就是得把 GridView 控件传给一个叫 ExportExcel 的方法,这个方法里头也是用 RenderControl 来把内容渲染出来,然后写到 Excel 文件里头。

我还在文件夹里边溜达一圈,找个叫“04”的文件夹,右键点一下,选个“设置工作目录”。这一步是为让程序知道它该在哪儿干活。

这一通折腾下来,我算是把这个 RenderControl 给摸透。虽然过程有点曲折,但最终还是实现我要的功能。以后再遇到类似的需求,我就知道该咋办。

这就是我今天给大家分享的一点小经验,希望能帮到你们。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]