首页  ·  知识 ·  云计算
在服务器端提取ASP.NET控件输出的HTML
网友     综合  编辑:dezai   图片来源:网络
在ASP.NET开发中经常会使用到Web控件和HTML控件,如果想通过代码提取这些控件Render到客户端后生成的HTML样式的话可以通过如下的函数得到。br /
在ASP.NET开发中经常会使用到Web控件和HTML控件,如果想通过代码提取这些控件Render到客户端后生成的HTML样式的话可以通过如下的函数得到。
 public string RenderHTML(WebControl objWebCtrl)
   {
       try
       {
           System.IO.StringWriter sw = new System.IO.StringWriter();
           HtmlTextWriter html = new HtmlTextWriter(sw);
           objWebCtrl.RenderControl(html);
           return sw.ToString();
       }
       catch (Exception ex)
       {
           Console.WriteLine(ex.Message);
return "";
       }
   }
   public string RenderHTML(HtmlControl objHtmlCtrl)
   {
       try
       {
           System.IO.StringWriter sw = new System.IO.StringWriter();
           HtmlTextWriter html = new HtmlTextWriter(sw);
           objHtmlCtrl.RenderControl(html);
           return sw.ToString();
       }
       catch (Exception ex)
       {
           Console.WriteLine(ex.Message);
return "";
        }
    }但是如果是GridView,可能在输出时会出现如下的提示信息:
'GridView1' 必须置于 runat=server 的标记中。
这需要在代码中增加:
public override void VerifyRenderingInServerForm(Control control)
{
}
如果GridView有分页时可能会出现如下的提示:
RegisterForEventValidation 只能在 Render(); 期间呼叫。
这个问题可以修改ASPX页面文件的<%Page%>实现,增加两个属性:
EnableEventValidation = "false" AutoEventWireup="true"
 
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读