在ASP.NET开发中经常会使用到Web控件和HTML控件,如果想通过代码提取这些控件Render到客户端后生成的HTML样式的话可以通过如下的函数得到。
'GridView1' 必须置于 runat=server 的标记中。
这需要在代码中增加:
public override void VerifyRenderingInServerForm(Control control)
{
}
如果GridView有分页时可能会出现如下的提示:
RegisterForEventValidation 只能在 Render(); 期间呼叫。
这个问题可以修改ASPX页面文件的<%Page%>实现,增加两个属性:
1 public string RenderHTML(WebControl objWebCtrl)
2 {
3 try
4 {
5 System.IO.StringWriter sw = new System.IO.StringWriter();
6 HtmlTextWriter html = new HtmlTextWriter(sw);
7
8 objWebCtrl.RenderControl(html);
9 return sw.ToString();
10 }
11 catch (Exception ex)
12 {
13 Console.WriteLine(ex.Message);
return "";
14 }
15 }
16
17 public string RenderHTML(HtmlControl objHtmlCtrl)
18 {
19 try
20 {
21 System.IO.StringWriter sw = new System.IO.StringWriter();
22 HtmlTextWriter html = new HtmlTextWriter(sw);
23
24 objHtmlCtrl.RenderControl(html);
25 return sw.ToString();
26 }
27 catch (Exception ex)
28 {
29 Console.WriteLine(ex.Message);
return "";
30 }
31 }
但是如果是GridView,可能在输出时会出现如下的提示信息:2 {
3 try
4 {
5 System.IO.StringWriter sw = new System.IO.StringWriter();
6 HtmlTextWriter html = new HtmlTextWriter(sw);
7
8 objWebCtrl.RenderControl(html);
9 return sw.ToString();
10 }
11 catch (Exception ex)
12 {
13 Console.WriteLine(ex.Message);
return "";
14 }
15 }
16
17 public string RenderHTML(HtmlControl objHtmlCtrl)
18 {
19 try
20 {
21 System.IO.StringWriter sw = new System.IO.StringWriter();
22 HtmlTextWriter html = new HtmlTextWriter(sw);
23
24 objHtmlCtrl.RenderControl(html);
25 return sw.ToString();
26 }
27 catch (Exception ex)
28 {
29 Console.WriteLine(ex.Message);
return "";
30 }
31 }
'GridView1' 必须置于 runat=server 的标记中。
这需要在代码中增加:
public override void VerifyRenderingInServerForm(Control control)
{
}
如果GridView有分页时可能会出现如下的提示:
RegisterForEventValidation 只能在 Render(); 期间呼叫。
这个问题可以修改ASPX页面文件的<%Page%>实现,增加两个属性:
EnableEventValidation = "false" AutoEventWireup="true"