一、WebServices中: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.IO; //加的 using System.Web.UI; //加的 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] //加的 public class GetHtml : System.Web.Services.WebService { [WebMethod] public string GetHtmlString() { Page page = new Page(); UserControl control = (UserControl)page.LoadControl("~/GetHtml.ascx"); page.Controls.Add(control); StringWriter writer = new StringWriter(); HttpContext.Current.Server.Execute(page, writer, false); return writer.ToString(); } } 二、用户控件: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="GetHtml.ascx.cs" Inherits="GetHtml" %> <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <table border="0" cellpadding="0" cellspacing="0" class="grid" style=" margin:0 auto;" mce_style=" margin:0 auto;"> <thead> <tr><th>DataId</th><th>DataDatetime</th><th>DataDecimal</th><th>DataString</th></tr> </thead> <tbody> </HeaderTemplate> <ItemTemplate><tr><td><%#Eval("DataId")%></td><td><%#Eval("DataDatetime")%></td><td><%#Eval("DataDecimal","{0:c}")%></td><td><%#Eval("DataString")%></td></tr> </ItemTemplate> <FooterTemplate></tbody> <!-- <tfoot> <tr><th>DataId</th><th>DataDatetime</th><th>DataString</th><th>DataDecimal</th></tr> </tfoot>--> </table> </FooterTemplate> </asp:Repeater> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class GetHtml : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { List<MyData> datas = new List<MyData>(); for (int i = 0; i < 24; i++) { double d = new Random(DateTime.Now.Millisecond).NextDouble(); datas.Add(new MyData { DataId = i, DataDatetime = DateTime.Now.AddDays(i).AddHours(i).AddMinutes(i).AddSeconds(i), DataDecimal = d*i+3 , DataString = "String" + i.ToString("00") }); } this.Repeater1.DataSource = datas; this.Repeater1.DataBind(); } } internal class MyData { public int DataId { get; set; } public DateTime DataDatetime { get; set; } public string DataString { get; set; } public double DataDecimal { get; set; } } } 三、展示效果页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <%@ Register src="GetHtml.ascx" tagname="GetHtml" tagprefix="uc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <mce:style type="text/css"><!-- *{ font-size:13px; font-family:Arial;} table{border-left:1px solid #ddd; border-top:1px solid #ddd;} table th{border-bottom:1px solid #ddd; border-right:1px solid #ddd;} table td{border-bottom:1px solid #ddd; border-right:1px solid #ddd;} --></mce:style><style type="text/css" mce_bogus="1"> *{ font-size:13px; font-family:Arial;} table{border-left:1px solid #ddd; border-top:1px solid #ddd;} table th{border-bottom:1px solid #ddd; border-right:1px solid #ddd;} table td{border-bottom:1px solid #ddd; border-right:1px solid #ddd;} </style> <mce:script type="text/javascript" language="javascript" src="jquery-1.2.3.min.js" mce_src="jquery-1.2.3.min.js"></mce:script> <mce:script type="text/javascript" language="javascript" defer="defer"><!-- jQuery(document).ready(function() { jQuery.ajax({ type: "POST", url: "GetHtml.asmx/GetHtmlString", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { jQuery('#grid2').html(msg.d); } }); }); // --></mce:script> </head> <body> <form id="form1" runat="server" enableviewstate="false"> <div> <div style="background-color:#084; width:49%; float:left;"> </div> <div style="background-color:#804; width:49%;" id="grid2"></div> <div style=" float:none; clear:both;" mce_style=" float:none; clear:both;"></div> </div> </form> </body> </html>