asp.net Repeater显示父子表数据,无闪烁 |
本文标签:asp.net,Repeater 效果图如下:
复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace RepeaterTest { public partial class Repeater : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.bind(); } } private DataSet dataSource { get { if (ViewState["ds"] != null) { return (DataSet)ViewState["ds"]; } else { DataSet ds = DataSource.GetDataSet(); ViewState["ds"] = ds; return ds; } } } private void bind() { DataSet ds = this.dataSource; this.Repeater1.DataSource = ds.Tables["tbclass"]; this.Repeater1.DataBind(); this.Repeater2.DataSource = ds.Tables["tbclass"]; this.Repeater2.DataBind(); } protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "expand") { LinkButton btn = (LinkButton)e.CommandSource; GridView grid =(GridView)btn.Parent.FindControl("grid1"); if (btn.Text == "+") { btn.Text = "-"; grid.Visible = true; } else { btn.Text = "+"; grid.Visible = false; } } } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { DataTable dt = this.dataSource.Tables["tbstu"]; LinkButton objButton = (LinkButton)e.Item.FindControl("btnExpand"); if (objButton != null && objButton.CommandArgument !="") { string classID = objButton.CommandArgument; dt.DefaultView.RowFilter = "ClassID=" + classID; DataTable dtStu = dt.DefaultView.ToTable(); GridView grid = (GridView)e.Item.FindControl("grid1"); grid.DataSource = dtStu; grid.DataBind(); } } protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e) { DataTable dt = this.dataSource.Tables["tbstu"]; Label objlbl = (Label)e.Item.FindControl("lblclassid"); if (objlbl != null && objlbl.Text != "") { string classID = objlbl.Text; dt.DefaultView.RowFilter = "ClassID=" + classID; DataTable dtStu = dt.DefaultView.ToTable(); GridView grid = (GridView)e.Item.FindControl("grid2"); grid.DataSource = dtStu; grid.DataBind(); } } } } 文件打包下载RepeaterTest.rar 有用得着的同志可以参考.. |