zoukankan      html  css  js  c++  java
  • 复制网页的按钮

    在开发的网站中,原本网页脚已经有一个铵钮,是导出数据的功能。由于某些网页内容太长,每次均需要滚至页脚,才可以找到那个铵钮,如果把此铵钮移至页头,当用户浏览至页脚时,想做导出动作,又得把网页滚至网页头。因此客户提出要求,需要在网页的页头与页脚均放一个铵钮,功能是一样的。

    解决办法,拉一个铵钮至网页头,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();
        }
    View Code


    然后,在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



    再运行网页,好了,没有出错了:


    复制好铵钮至页头。我们还要看看它的Click事件功能,是否一样?



  • 相关阅读:
    iptables dnat不通
    os.system()和os.popen()
    mysql登录提示ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded解决方法
    SpringBoot之web开发
    基于MQ的分布式事务解决方案
    Docker核心技术
    [Java]Object有哪些公用方法?
    zookeeper
    单例模式的几种实现方式及优缺点
    并发编程之Synchronized原理
  • 原文地址:https://www.cnblogs.com/insus/p/3105386.html
Copyright © 2011-2022 走看看