利用AJAX方法动态生成并绑定数据! 后台代码! using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Text; using Excel; using System.Reflection; namespace QCActivityManage.Modules { public partial class AttendenceManager : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(AttendenceManager)); if (!Page.IsPostBack) { if (Session["QCID"] != null) { txtQCID.Value = Session["QCID"].ToString(); } Session.Clear(); string sqlwhere = "QCID='" + txtQCID.Value + "'"; QCActivityManage.BLL.ActivityInfo activityinfo = new QCActivityManage.BLL.ActivityInfo(); DataSet ds = activityinfo.SelectActivityInfo(sqlwhere); if (ds != null && ds.Tables[0].Rows.Count > 0) { lblActivityName.Text = ds.Tables[0].Rows[0]["ActivityName"].ToString(); } } } [AjaxPro.AjaxMethod()] public string GetMember(string QCID) { QCActivityManage.BLL.MemberInfo memberinfoBll = new QCActivityManage.BLL.MemberInfo(); DataSet ds = memberinfoBll.SelectMemberInfoByQCID(QCID); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("
"); sb.Append("
"); if (ds != null && ds.Tables[0].Rows.Count > 0) { double m = 0; m = 100 / ds.Tables[0].Rows.Count; string per = m.ToString("0.0"); if (ds.Tables[0].Rows.Count == 1) { sb.Append("
" + ds.Tables[0].Rows[0]["Name"].ToString() + "
"); } else { for (int i = 0; i < ds.Tables[0].Rows.Count - 1; i++) { sb.Append("