- 浏览: 251633 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u010181690:
怎么我的不管事呢
JSEnhancements for vs2012 -
sunqing0316:
public static DateTime? GetData ...
详解System.Nullable<值类型> -
sunqing0316:
请问public static DateTime? GetDa ...
详解System.Nullable<值类型> -
3eirc3:
不错,下载下来试试,原来用vs2010时的那个工具和现在这个不 ...
JSEnhancements for vs2012 -
3eirc3:
[url][b][i][u]引用[list]
[*][img] ...
JSEnhancements for vs2012
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();
}
}
以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();
}
}
发表评论
-
.net面试题
2014-04-02 11:15 809相册 广场 ... -
.net面试题
2014-04-02 11:12 1152登录 首页 专栏 专 ... -
一個結合where、group、orderby的linq語法
2014-03-11 18:09 806這個linq語法是之前在寫winform程式時,將DataSe ... -
比较C#中的readonly与const
2014-03-07 10:22 448比较C#中的readonly与const ... -
string和stringBuilder区别
2014-03-07 10:15 642C# String 对象是不可改变的。每次使用 System ... -
C#.net cookie、session实现自动登陆
2013-11-08 13:35 1901C#.net cookie、session实现 ... -
多条件查询的存储过程的写法
2013-11-04 15:07 504USE [ESD] GO /****** Object: S ... -
多条件查询的存储过程的写法
2013-11-04 15:06 536USE [ESD] GO /****** Object: S ... -
linq left join
2013-11-04 15:04 722linq left join var list = fro ... -
HttpHandler和HttpModule
2013-11-04 15:03 622HttpHandler和HttpModule ... -
如何过滤一个集合
2013-10-10 18:45 654List<Lenovo.SDI.ESD.Entiti ... -
DropdownList动态控制显示的值
2013-10-10 18:43 623DropdownList.Items.Insert(0, ne ... -
asp.net的<% %>总结
2013-08-30 17:01 722asp.net的<% %>总结 ... -
trim
2013-08-30 14:04 390string auditorsName.Trim(','); ... -
邮箱验证功能的思路
2013-07-27 14:20 1775注册时邮箱验证 没实现过,但是知道如何实现~~~一般用户注册账 ... -
GridView 绑定日期格式,时间格式
2013-05-28 10:38 1296GridView 绑定日期格式,时间格式 绑定格式如:Da ... -
.net 防止刷新重复提交
2013-04-26 14:49 945http://www.cnblogs.com/madehua/ ... -
素材库
2013-04-24 18:59 615http://www.easyicon.net/ -
记日志
2013-04-16 18:10 662记录日志很方便! -
.net framework所在的位置
2013-04-16 14:56 1284C:\Windows\Microsoft.NET\Framew ...
相关推荐
在ASP.NET Web Forms中,`Repeater`控件是一个非常重要的数据绑定控件,它提供了高度自定义的模板布局功能,允许开发者灵活地呈现数据。本实例将深入讲解`Repeater`控件的使用方法,包括其基本概念、结构、绑定数据...
## 一、Repeater控件的基本使用 `Repeater`控件不提供任何内置的布局或样式,而是通过模板(ItemTemplate、HeaderTemplate、FooterTemplate等)来定义数据呈现的方式。这使得`Repeater`具有高度的灵活性,可以完全...
2. ItemCommand:如果在模板中使用了asp:LinkButton或asp:Button控件,点击这些按钮会触发此事件。 六、高级应用 1. 数据分页:虽然Repeater控件本身不支持分页,但可以通过结合Paging和Sorting控件,以及在代码...
下面我们将深入探讨Repeater控件的使用、特点以及如何在实际项目中应用。 一、Repeater控件概述 Repeater控件是一个动态数据显示控件,它可以遍历数据源,并为每一项数据生成相应的HTML。由于Repeater不提供任何...
但是,需要注意的是,由于ID可能是动态生成的,所以在JavaScript中使用时,必须确保ID的唯一性和正确性。 此外,标签“工具”暗示这可能涉及到开发工具的使用。在调试此类问题时,使用浏览器的开发者工具(如Chrome...
提供的压缩包文件中,可能包含了一个完整的示例项目,如Jinlong.sln是解决方案文件,可能包含了使用Repeater控件的Web应用程序;sql.sql可能是用于填充数据的SQL脚本;源码必读.txt可能提供了代码实现的细节;chinaz...
在实际开发中,我们经常需要在 Repeater 控件中使用 Button 控件,以便响应用户的单击操作。下面就让我们来探讨如何在 Asp.Net Repeater 中使用 Button 控件并响应单击操作的方法。 首先,让我们来看一下 Repeater ...
本文将详细介绍 ASP.NET 中使用 Repeater 控件中的全选进行批量操作的方法。Repeater 控件是 ASP.NET 中的一种常用的控件,用于显示重复的数据项,如列表、表格等。通过使用 Repeater 控件,我们可以轻松实现数据的...
C#中Repeater控件的实现示例C#中Repeater控件的实现示例
给定的代码中使用了C#语言编写后端逻辑,并在ASPX页面中使用Repeater控件进行数据展示。代码主要分为两部分:服务器端代码(.cs文件)和客户端HTML页面(.aspx文件)。 ##### 服务器端代码分析 - **加载数据源**:...
1. **Repeater控件**:Repeater是ASP.NET中的一个服务器控件,用于显示数据源中的数据。它不提供任何内置的布局或样式,允许开发者完全自定义HTML输出。在本项目中,Repeater用于显示数据库中的记录,通过模板字段来...
在前台如果遇到多级分类菜单的时候,我们通常会使用到Repeater控件来展示,Repeater控件最大的有点就是不会生成任何多余的html标签,所以它不会影响的页面的效果,平时Repeater的二级嵌套我们可能都接触过,其实多层...
本文将详细介绍如何在ASP.NET中使用Repeater控件嵌套另一个Repeater控件,并结合示例代码进行解析。 #### Repeater控件简介 Repeater控件是一种非常灵活的服务器控件,它可以用来显示重复的数据项。与GridView、...
在ASP.NET Web Forms开发中,服务器控件Repeater是一个非常重要的数据绑定控件,它允许开发者自定义数据呈现的方式。...在实际开发中,合理地使用Repeater控件,可以有效地提高项目的质量和用户体验。
本示例中,我们将会深入探讨如何使用`Repeater`控件从数据库中获取数据并展示在网页上。源码包含两部分:SQL数据表的创建与操作以及页面实现的代码。 ### 1. SQL数据表的创建与操作 首先,我们需要一个数据库来...
当你需要在Repeater控件中显示日期时,可以使用ASP.NET的内置数据绑定表达式 `<%# %>` 来格式化日期。例如,假设数据源中的日期字段名为`DateTimeField`: ```html ("DateTimeField", "{0:yyyy-MM-dd}") %>' /> ...
本篇文章将深入探讨Repeater控件的使用,包括数据原样导出和动态显示/隐藏Repeater中的列。 **一、Repeater数据原样导出** Repeater控件在ASP.NET中可以方便地绑定数据源,如DataTable,然后通过DataBind()方法将...
首先,建立数据源连接,获取数据并填充到Repeater控件中。数据源可以是SQL查询结果,也可以是从存储过程获取的数据。 接下来,将AspNetPager控件添加到页面上,通过以下步骤配置分页: 1. 设置ID,以便在代码后面...
经过对ASP.NET中Repeater数据控件基本特征的分析,以及对实际应用系统中数据列表功能的提炼总结,提出并设计了挖掘其潜力的示例算法模型,重点介绍了控件模板的灵活性与定制使用方法。并通过典型应用示例,展示其...