repeater控件使用

Repeater控件使用(含删除,分页功能)
以SQL SERVER2000自带数据库Northwind中Customers表示例.
前台aspx代以码:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Repeater.aspx.cs" Inherits="Repeater" %>

<!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>Repeater控件使用</title>
<script language="javascript" type="text/javascript">
function Check(parentChk,ChildId)
{
var oElements = document.getElementsByTagName("INPUT");
var bIsChecked = parentChk.checked;

for(i=0; i<oElements.length;i++)
{
if( IsCheckBox(oElements[i]) &&
IsMatch(oElements[i].id, ChildId))
{
oElements[i].checked = bIsChecked;
}
}
}

function IsMatch(id, ChildId)
{
var sPattern ='^Repeater1.*'+ChildId+'$';
var oRegExp = new RegExp(sPattern);
if(oRegExp.exec(id))
return true;
else
return false;
}

function IsCheckBox(chk)
{
if(chk.type == 'checkbox') return true;
else return false;
}

</script>
</head>

<body>
<form id="form1" runat="server">
<div style="margin-bottom:20px;text-align:center; width:1006px;">Repeater控件使用</div>
<asp:Repeater ID="Repeater1" runat="server">
<%--SeparatorTemplate描述一个介于每条记录之间的分隔符--%>
<%--<SeparatorTemplate>
<tr>
<td colspan="5"><hr /></td>
</tr>
</SeparatorTemplate>--%>

<HeaderTemplate>
<table border="1" cellpadding="0" cellspacing="0" style="width:1006px;border-collapse:collapse; text-align:center;">
<tr>
<td style="background-color:#cccccc; font-weight:bold; height:25px;"><input id="chkAll" name="chkAll" runat="server" type="checkbox" onclick="Check(this,'chkItem')" title="全选" />全</td>
<td style="background-color:#cccccc; font-weight:bold; height:25px;">View</td>
<td style="background-color:#cccccc; font-weight:bold; height:25px;">CustomerID</td>
<td style="background-color:#cccccc; font-weight:bold;">CompanyName</td>
<td style="background-color:#cccccc; font-weight:bold;">ContactName</td>
<td style="background-color:#cccccc; font-weight:bold;">ContactTitle</td>
<td style="background-color:#cccccc; font-weight:bold;">Address</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="chkItem" runat="server" /></td>
<td><a href='<%# "View.aspx?id="+DataBinder.Eval(Container.DataItem, "CustomerID") %>' target="_blank">View</a></td>
<td><asp:Label ID="lblID" Text='<%# DataBinder.Eval(Container.DataItem, "CustomerID")%>' runat="server"></asp:Label></td>
<td><%# DataBinder.Eval(Container.DataItem, "CompanyName")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "ContactName")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "ContactTitle")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "Address")%></td>
</tr>
</ItemTemplate>
<%--AlternatingItemTemplate描述交替输出行的另一种外观--%>
<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8">
<td><asp:CheckBox ID="chkItem" runat="server" /></td>
<td><a href='<%# "View.aspx?id="+DataBinder.Eval(Container.DataItem, "CustomerID") %>' target="_blank">View</a></td>
<td><asp:Label ID="lblID" Text='<%# DataBinder.Eval(Container.DataItem, "CustomerID")%>' runat="server"></asp:Label></td>
<td><%# DataBinder.Eval(Container.DataItem, "CompanyName")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "ContactName")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "ContactTitle")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "Address")%></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<div style="background-color:#dedede; width:1006px;">
<asp:Button ID="btnDel" runat="server" Text="删除" OnClick="btnDel_Click" />
<asp:label ID="lblCurrentPage" runat="server"></asp:label>
<asp:HyperLink id="lnkFrist" runat="server">首页</asp:HyperLink>
<asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>
<asp:HyperLink id="lnkEnd" runat="server">尾页</asp:HyperLink>
</div>
</form>
</body>
</html>
后台CS部分代码:

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;
using System.Data.SqlClient;

public partial class Repeater : System.Web.UI.Page
{
PagedDataSource PDS = new PagedDataSource();
private string ConnStr = ConfigurationManager.AppSettings["dbConnectionString"];
private string strsql = "";

protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
this.bind();
}
}

private void bind()
{
int TotalCount = 0;//总记录数
int TotalPage = 1; //总页数

SqlConnection conn = new SqlConnection(ConnStr);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select CustomerID,CompanyName,ContactName,ContactTitle,Address from Customers order by CustomerID desc", conn);
DataSet ds = new DataSet();
da.Fill(ds, "Customers");
DataView dv = ds.Tables[0].DefaultView;

TotalCount = dv.Count;
PDS.DataSource = dv;
conn.Close();
PDS.AllowPaging = true;
PDS.PageSize = 20;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;

if (TotalCount == 0)
TotalPage = 1;
else
{
if (TotalCount % PDS.PageSize == 0)
TotalPage = TotalCount / PDS.PageSize;
else
TotalPage = TotalCount / PDS.PageSize + 1;
}

PDS.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "共" + TotalCount.ToString() + "条记录 当前页:" + CurPage.ToString() + "/" + TotalPage;

lnkFrist.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
if (!PDS.IsFirstPage)
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);

if (!PDS.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
lnkEnd.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + TotalPage;

Repeater1.DataSource=PDS;
Repeater1.DataBind();
}

protected void btnDel_Click(object sender, EventArgs e)
{
string ID = "";

for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
CheckBox cbox = (CheckBox)this.Repeater1.Items[i].FindControl("chkItem");
if (cbox.Checked == true)
{
if (ID == "")
{
ID = "'"+((Label)this.Repeater1.Items[i].FindControl("lblID")).Text+"'";
}
else
{
ID += "," + "'" + ((Label)this.Repeater1.Items[i].FindControl("lblID")).Text + "'";
}
}
}
strsql = "delete from Customers where CustomerID in (" + ID + ")";
try
{
SqlConnection conn = new SqlConnection(ConnStr);
SqlCommand comm = new SqlCommand(strsql, conn);
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('刪除成功!');</script>");
}
catch (System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
this.bind();
}
}
Repeater控件应用 这个控件是一个非常有用的控件,可以绑定数据源,并且可以自己设置格式 立即下载

相关推荐

asp.net Repeater控件 应用实例 简单的留言板

asp.net Repeater控件 应用实例 简单的留言板

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

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

Repeater 显示5条数据

简单的reapeter应用,平时用reapeter时都是直接绑定,然后通过分页控件,规定显示数据的条数,在显示数据时也可以直接规定显示数据的条数

Repeater控件

Repeater控件Repeater 控件使用列表方式来显示数据,能够让用户定义 Template 模板标记,自动用模板标记的项目,像循环那样重复编排数据源的数据,其基本语法如下所示。                            上述Repeater 控件使用 Template 模板标记(标记内容可以使用 HTML 标记)编排数据。各种Template 标

onsrs的专栏 3933

WebForm(四)——Repeater控件(重要、好用)

Repeater控件,可以用来一次显示一组数据项。比如,可以用它们显示一个数据表中的所有行。 Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式。 一、Repeater控件显示数据 要使用Repeater控件显示数据,必须创建ItemTemplate。如下所示: 例1:使用ItemTempl...

dhope1234的博客 413

关于Repeater控件使用

关于Repeater控件使用 Repeater控件是一个数据显示控件,该控件允许通过为列表中显示的每一项重复使用指定的模板来自定义布局。 要显示数据,必须先创建模板来绑定数据列表,模块定义如下(另见SDK):一.模板说明 HeaderTemplate 在所有数据绑定行呈现之前呈现一次的元素。典型的用途是开始一个容器元素(如表)。注意: HeaderTemplate 项不能是数据绑定的...

276

Repeater控件使用

一、Repeater控件的简单示例      这种方式很简单,只需要拖控件,设置它的各项ItemTemplate,将SqlDataSource数据源中的数据手动代码绑定上去就可以了,当然了,这样比较丑,只能查看数据,而且不能做分页等操作。代码如下:"Repeater1" runat="server" DataSourceID="SqlDataSource1">        

爪哇壹游 1670

Repeater 控件

关于Repeater控件使用的一些总结,希望能对将来有机会看到这篇日志的同事有所帮助。也是为了在自己开发有所遗忘的时候能够参考一下。前言:Repeater是一个迭代控件,什么是迭代控件呢?书本上的解释是这样的:如果一个ASP.NET数据绑定控件能够遍历一组数据,以将一个ASP.NET模板应用于每一个数据项,则将这个ASP.NET数据绑定控件称为迭代控件。至于其与列表控件(DropDownList,ListBox,CheckBoxList等,DataList除外)和视图控件(GridView,FormView

geng_geng的专栏 1637

repeater控件介绍、 repeater嵌套的代码实现

Repeater 控件的几个模板项介绍 AlternatingItemTemplate 对交替数据项进行格式设置,与 ItemTemplate 元素类似,但在 Repeater 控件中隔行(交替项)呈现一次。通过设置 AlternatingItemTemplate 元素的样式属性,可以为其指定不同的外观。 FooterTemplate 该模板确定了控件页脚的呈现样式,在所有数据

学习也休闲 1506

repeater控件

    摘要:代理模式 当我们需要使用的对象很复杂或者需要很长时间去构造,这时就可以使用代理模式(proxy)。例如:如果构建一个对象很耗费时间和计算机资源,代理模式(proxy)允许我们控制这种情况,直到我们需要使用实际的对象。一个代理(proxy)通常包含和将要使用的对象同样的方法,一旦开始使用这个对象,这些方法将通过代理(proxy)传递给实际的对象。 一些可以使用代理模式(proxy...

费剑的博客 610

初识Repeater控件

在做新闻发布系统的时候,有给xin

思想上移,行动下移 1252

C# ASP.NET中Repeater控件

C# ASP.NET中Repeater控件

weixin_44498188的博客 706
上一篇: 如何不打断Sql脚本直接复制到C#代码中
下一篇: with公用表表达式
pmandy
博客等级 码龄17年 13粉丝 155原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值