复制网页的按钮
在开发的网站中,原本网页脚已经有一个铵钮,是导出数据的功能。由于某些网页内容太长,每次均需要滚至页脚,才可以找到那个铵钮,如果把此铵钮移至页头,当用户浏览至页脚时,想做导出动作,又得把网页滚至网页头。因此客户提出要求,需要在网页的页头与页脚均放一个铵钮,功能是一样的。
解决办法,拉一个铵钮至网页头,OnClick事件指向页脚铵钮的OnClick事件。这是最简单的方法。不过,此次Insus.NET尝试使用另外一方法来实现。
下面是实现过程,数据环境还是使用这篇吧:http://www.cnblogs.com/insus/archive/2013/05/28/3103714.html
去.aspx网页中,拉一个控件,下图高亮部分:
去.aspx.cs写一个Render方法:

public string RenderControlToHtml(Control ctrl) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); HtmlTextWriter htw = new HtmlTextWriter(sw); ctrl.RenderControl(htw); return sb.ToString(); }
然后,在Page_Load事件,去复制铵钮:
OK, 我们试运行网页看看,啊,出错了......
Control 'Button1' of type 'Button' must be placed inside a form tag with
runat=server.
没事,这是熟悉的错误,记得在做GridView导出Excel或Word时,也有此提示。在.aspx.cs页面override VerifyRenderingInServerForm方法即可解决此问题。
public override void VerifyRenderingInServerForm(Control control) { }
再运行看看,啊,又出现另外一个错误......
RegisterForEventValidation can only be called during Render();
仔细一看,没事,这个错误也是遇上过的,参考:http://www.cnblogs.com/insus/archive/2009/06/11/1501243.html
再运行网页,好了,没有出错了:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异