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

(0)

相关推荐

  • ASP.NET repeater添加序号列的方法

    在项目开发过程中,会经常遇到ASP.NET repeater控件添加序号列,有些新手可能还不会,网上搜集整理了一些,需要的朋友可以参考下 ASP.NET repeater添加序号列的方法 1.<itemtemplate> <tr><td> <%# Container.ItemIndex + 1%> </td></tr> </itemtemplate> 2.<itemtemplate> <tr><

  • asp.net中让Repeater和GridView支持DataPager分页

    改造办法是自己写一个控件,让它继承GridView或Repeater,并实现IPageableItemContainer 接口.下面要发的是国外某高手写的代码,测试有效.具体使用的时候,要建一个类库项目,把代码编译成dll后,就可以添加到VS的工具箱里了! 一.自定义Repeater 复制代码 代码如下: using System.Web.UI; using System.Web.UI.WebControls; namespace WYJ.Web.Controls { /// <summary>

  • asp.net Repeater 数据绑定的具体实现(图文详解)

    以下为设计步骤: 1.在C# 中连接数据库.如下图:2.在项目中添加新建项,建立一个数据集,并把Categories从服务器资源列表中拖到这个数据集模板中并点击菜单"生成-生成解决方案",如下图: 3.在aspx的webform上放一个ObjectDataSource控件,设定它的TypeName为刚刚建立的数据集类型,用它的向导建立即可.4.在aspx的webform上放一个Repeater控件,用它的向导设定它的DataSourceID为上面的ObjectDataSource5.在

  • ASP.NET笔记之 Repeater的使用

    1.数据绑定combox-->BingdSource-->ObjectDataSource //连接数据库**后台代码: T_UserTableAdapter adpter=T_UserTableAdpter();adpater.调用T_User表的自定义方法 //设置初始数据:AppenddateBource="true"; 2.Repeater 动态显示数据表中所有数据:(相当于一个for语句我觉得) #代表绑定数据(1.模板:<ItemTemplate>主

  • asp.net 遍历repeater中的控件的几种方式

    方式1: 复制代码 代码如下: foreach (Control c in this.Repeater1.Controls) { HtmlInputCheckBox check = (HtmlInputCheckBox)c.FindControl("cbDelete1"); if( check != null ) { check.Checked = true; } } 方式2: 复制代码 代码如下: for (int i=0;i<this.Repeater1.Items.Coun

  • asp.net Repeater 数据绑定代码

    ASPX页面的Repeater控件: 复制代码 代码如下: <asp:Repeater ID="IndexTopMain" runat="server"> <HeaderTemplate><!--头--> <ul> </HeaderTemplate> <ItemTemplate><!--中间循环部分--> <li> • <a href="AritcleDi

  • JQuery实现Repeater无刷新批量删除(附后台asp.net源码)

    前台页面 复制代码 代码如下: <head runat="server"> <title>无标题页</title> <script src="Js/jquery-1.5.1.min.js" type="text/javascript"></script> <script src="Js/Demo.js" type="text/javascript&qu

  • ASP.NET数据绑定之Repeater控件

    在ASP.NET的学习过程中,其控件的学习和使用占了很大的一部分,本文为大家介绍一下控件Repeater控件的使用,用它来绑定后台数据,然后在客户端(浏览器)上显示出来! 一. Repeater控件 1.用途:使用模板循环显示数据. 2.包含的模板: <ItemTemplate></ItemTemplate> 项目模板(里面的数据正常显示) <AlternatingItemTemplate></AlternatingItemTemplate> 交错显示模板(

  • asp.net下Repeater使用 AspNetPager分页控件

    一.AspNetPager分页控件 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差.无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大.任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一. AspNet

  • 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.WebPart

  • ASP.NET Repeater 单双行数据换色示例

    前台点击Repeater的ItemCreated触发事件. CS代码: if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if ((e.Item.ItemIndex + 1) % 2 == 0) { ((HtmlTableRow)e.Item.FindControl("row2")).BgColor = "#FFE6E6"; }

  • asp.net Repeater之非常好的数据分页

    分页控件源代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; #region Assembly Resource Attribut

  • ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单实例

    有时候,不得不考虑到以下场景问题: 数据库表字段会频繁更改扩展,而流行的重业务的js框架过于依赖json数据接口,导致的问题是,数据库表更改 -> 数据接口更改 -> 前段框架逻辑更改... 一不小心就陷入坑坑洼洼. 这样的话,原来纯ASP.NET MVC绑定的方式,还是可以一用的,因为该方式不用再为那么多js代码烦恼. 不好意思,前面自说自话啊,直接上干货代码了---- Ajax.BeginForm @{ Layout = null; var ajaxOptions = new AjaxOp

  • asp.net Repeater控件的说明及详细介绍及使用方法

    Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. 他很简单,用起来也不够强大,但是应了那句老话,杀鸡焉用牛刀,不用牛刀那用什么呢?难道我们去把鸡咬死不成?而我们在日常应用中也常常面临这样的选择,假设我们显示教复杂的数据,可以用gridview,一般复杂的用DataList,那么简单的数据呈现呢?我们就用Repeater了,因为他简单,小巧,最主要是灵活. 我们

  • JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】

    Bootstrap Table是轻量级的和功能丰富的以表格的形式显示的数据,支持单选,复选框,排序,分页,显示/隐藏列,固定标题滚动表,响应式设计,Ajax加载JSON数据,点击排序的列,卡片视图等.今天就结合Bootstrap table的父子表和行列调序的用法再来介绍下它稍微高级点的用法. bootstrap table系列: JS表格组件神器bootstrap table详解(基础版) JS组件系列之Bootstrap table表格组件神器[终结篇] JS组件系列之Bootstrap t

  • ASP.NET 2.0中的数据操作之八:使用两个DropDownList过滤的主/从报表

    导言 在前面的指南中我们研究了如何显示一个简单的主/从报表, 该报表使用DropDownList和GridView控件, DropDownList填充类别,GridView显示选定类别的产品. 这类报表用于显示具有一对多关系的记录时非常合适, 同时它也可以很容易的被扩展以显示多个一对多关系的数据. 比如, 一个订单系统应该包含表示客户,订单和订单明细的表. 一个客户也许有多个订单,每个订单又包含多条订单项. 这样的数据可以使用两个DropDownList和一个GridView呈现给用户. 第一个

  • ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的主/从报表

    导言 主/从报表是一种很常见的报表, 这类报表中首先会显示一些主记录. 然后用户可以深入(追溯)某条主记录来查看该主记录的详情. 主/从报表是显示一对多关系的理想选择, 比如一个报表显示所有的产品类别,然后根据用户选择的特定类别显示与之关联的产品. 另外, 主/从表在显示"宽"表(有很多列的表)的详细信息时也很有用.例如主/从报表的主表部分显示数据库中产品表的产品名称和单价, 具体到某一个产品时再显示其他的产品字段(类别,供应商,单位数量,等等). 有很多方法可以实现主/从报表. 在这

  • 通用MapReduce程序复制HBase表数据

    编写MR程序,让其可以适合大部分的HBase表数据导入到HBase表数据.其中包括可以设置版本数.可以设置输入表的列导入设置(选取其中某几列).可以设置输出表的列导出设置(选取其中某几列). 原始表test1数据如下: 每个row key都有两个版本的数据,这里只显示了row key为1的数据 在hbase shell 中创建数据表: create 'test2',{NAME => 'cf1',VERSIONS => 10} // 保存无版本.无列导入设置.无列导出设置的数据 create '

  • Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言 父子组件通讯,可分为两种情况: 1. 父组件向子组件中传递数据 2. 子组件向父组件中传递数据 一般情况下, 1中情况可通过props解决数据传递的问题, 这里就不多赘述了. 子组件向父组件中传递数据 主要谈谈2中情景的实现,有三种方式: 一. 通过props,父组件向子组件中传递数据和改变数据的函数,通过在子组件中调用父组件传过来的函数,达到更新父组件数据(向父组件传递数据)的作用(子组件中需要有相应的响应事件) 二. 通过在子组件中触发一个 自定义事件(vm.$emit),将数据作为v

随机推荐