假如我们要用JS显示一个TABLE,我们需要用ajax从后台获取一个数据集合 如DataTable或List等,然后再在JS里循环遍历,由于要控制样式等等,所以感觉有点麻烦。所以我就想在后台把HTML生成了,在客户端直接获取HTML,上代码:
在ascx中的代码
<%
@ Control Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeBehind
=
"
WebUserControl1.ascx.cs
"
Inherits
=
"
WebApplication1.WebUserControl1
"
%>
< form id = " form1 " runat = " server " >
< asp:GridView ID = " GridView1 " runat = " server " >
</ asp:GridView >
</ form >
< form id = " form1 " runat = " server " >
< asp:GridView ID = " GridView1 " runat = " server " >
</ asp:GridView >
</ form >
在cs中的代码
//
这里仅仅是手动组装了数据源
DataTable dt = new DataTable();
dt.Columns.AddRange( new DataColumn[] { new DataColumn( " Column1 " ), new DataColumn( " Column2 " ) });
DataRow dr = dt.NewRow();
dr[ " Column1 " ] = " 1 " ;
dr[ " Column2 " ] = 2 ;
dt.Rows.Add(dr);
// 这里才是关键代码
WebUserControl1 wuc = this .LoadControl( " /WebUserControl1.ascx " ) as WebUserControl1;
wuc.GridView1.DataSource = dt;
wuc.GridView1.DataBind();
Page p = new Page();
p.Controls.Add(wuc);
StringWriter tw = new StringWriter();
HttpContext.Current.Server.Execute(p, tw, false );
// html就是tw.ToString()啦
Response.Write(tw.ToString());
DataTable dt = new DataTable();
dt.Columns.AddRange( new DataColumn[] { new DataColumn( " Column1 " ), new DataColumn( " Column2 " ) });
DataRow dr = dt.NewRow();
dr[ " Column1 " ] = " 1 " ;
dr[ " Column2 " ] = 2 ;
dt.Rows.Add(dr);
// 这里才是关键代码
WebUserControl1 wuc = this .LoadControl( " /WebUserControl1.ascx " ) as WebUserControl1;
wuc.GridView1.DataSource = dt;
wuc.GridView1.DataBind();
Page p = new Page();
p.Controls.Add(wuc);
StringWriter tw = new StringWriter();
HttpContext.Current.Server.Execute(p, tw, false );
// html就是tw.ToString()啦
Response.Write(tw.ToString());