假如我们要用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>
在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());