假如我们要用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());
posted on 2011-07-05 14:50  不惑ed  阅读(974)  评论(0编辑  收藏  举报