asp.net Repeater显示父子表数据,无闪烁

时间:2021-11-20 16:25:43
效果图如下:

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 
有用得着的同志可以参考..