`
冷寒冰
  • 浏览: 251676 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

repeater控件使用

    博客分类:
  • .net
 
阅读更多
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 Web Forms中,`Repeater`控件是一个非常重要的数据绑定控件,它提供了高度自定义的模板布局功能,允许开发者灵活地呈现数据。本实例将深入讲解`Repeater`控件的使用方法,包括其基本概念、结构、绑定数据...

    Repeater控件的使用

    ## 一、Repeater控件的基本使用 `Repeater`控件不提供任何内置的布局或样式,而是通过模板(ItemTemplate、HeaderTemplate、FooterTemplate等)来定义数据呈现的方式。这使得`Repeater`具有高度的灵活性,可以完全...

    Repeater控件使用

    2. ItemCommand:如果在模板中使用了asp:LinkButton或asp:Button控件,点击这些按钮会触发此事件。 六、高级应用 1. 数据分页:虽然Repeater控件本身不支持分页,但可以通过结合Paging和Sorting控件,以及在代码...

    ASP.NET-repeater控件使用.zip

    下面我们将深入探讨Repeater控件的使用、特点以及如何在实际项目中应用。 一、Repeater控件概述 Repeater控件是一个动态数据显示控件,它可以遍历数据源,并为每一项数据生成相应的HTML。由于Repeater不提供任何...

    Repeater控件在HTML中找不到对应的ID,tmpl不能正常appendTo<Repeater>标签中

    但是,需要注意的是,由于ID可能是动态生成的,所以在JavaScript中使用时,必须确保ID的唯一性和正确性。 此外,标签“工具”暗示这可能涉及到开发工具的使用。在调试此类问题时,使用浏览器的开发者工具(如Chrome...

    手把手教你怎么使用Repeater控件

    提供的压缩包文件中,可能包含了一个完整的示例项目,如Jinlong.sln是解决方案文件,可能包含了使用Repeater控件的Web应用程序;sql.sql可能是用于填充数据的SQL脚本;源码必读.txt可能提供了代码实现的细节;chinaz...

    Asp.Net Repeater中使用Button控件并响应单击操作的方法

    在实际开发中,我们经常需要在 Repeater 控件中使用 Button 控件,以便响应用户的单击操作。下面就让我们来探讨如何在 Asp.Net Repeater 中使用 Button 控件并响应单击操作的方法。 首先,让我们来看一下 Repeater ...

    【ASP.NET编程知识】asp.net使用Repeater控件中的全选进行批量操作实例.docx

    本文将详细介绍 ASP.NET 中使用 Repeater 控件中的全选进行批量操作的方法。Repeater 控件是 ASP.NET 中的一种常用的控件,用于显示重复的数据项,如列表、表格等。通过使用 Repeater 控件,我们可以轻松实现数据的...

    C#中Repeater控件的实现示例

    C#中Repeater控件的实现示例C#中Repeater控件的实现示例

    Repeater控件分页例子

    给定的代码中使用了C#语言编写后端逻辑,并在ASPX页面中使用Repeater控件进行数据展示。代码主要分为两部分:服务器端代码(.cs文件)和客户端HTML页面(.aspx文件)。 ##### 服务器端代码分析 - **加载数据源**:...

    Repeater控件增删查改

    1. **Repeater控件**:Repeater是ASP.NET中的一个服务器控件,用于显示数据源中的数据。它不提供任何内置的布局或样式,允许开发者完全自定义HTML输出。在本项目中,Repeater用于显示数据库中的记录,通过模板字段来...

    Repeater控件的多层嵌套

    在前台如果遇到多级分类菜单的时候,我们通常会使用到Repeater控件来展示,Repeater控件最大的有点就是不会生成任何多余的html标签,所以它不会影响的页面的效果,平时Repeater的二级嵌套我们可能都接触过,其实多层...

    asp.net中Repeater控件嵌套Repeater调数据方法

    本文将详细介绍如何在ASP.NET中使用Repeater控件嵌套另一个Repeater控件,并结合示例代码进行解析。 #### Repeater控件简介 Repeater控件是一种非常灵活的服务器控件,它可以用来显示重复的数据项。与GridView、...

    服务器控件Repeater的使用

    在ASP.NET Web Forms开发中,服务器控件Repeater是一个非常重要的数据绑定控件,它允许开发者自定义数据呈现的方式。...在实际开发中,合理地使用Repeater控件,可以有效地提高项目的质量和用户体验。

    Repeater控件绑定数据库

    本示例中,我们将会深入探讨如何使用`Repeater`控件从数据库中获取数据并展示在网页上。源码包含两部分:SQL数据表的创建与操作以及页面实现的代码。 ### 1. SQL数据表的创建与操作 首先,我们需要一个数据库来...

    repeater控件显示日期

    当你需要在Repeater控件中显示日期时,可以使用ASP.NET的内置数据绑定表达式 `&lt;%# %&gt;` 来格式化日期。例如,假设数据源中的日期字段名为`DateTimeField`: ```html ("DateTimeField", "{0:yyyy-MM-dd}") %&gt;' /&gt; ...

    【ASP.NET编程知识】浅析Repeater控件的使用 (原样导出和动态显示隐藏Repeater中的列).docx

    本篇文章将深入探讨Repeater控件的使用,包括数据原样导出和动态显示/隐藏Repeater中的列。 **一、Repeater数据原样导出** Repeater控件在ASP.NET中可以方便地绑定数据源,如DataTable,然后通过DataBind()方法将...

    使用AspNetPager对Repeater控件分页简单小例

    首先,建立数据源连接,获取数据并填充到Repeater控件中。数据源可以是SQL查询结果,也可以是从存储过程获取的数据。 接下来,将AspNetPager控件添加到页面上,通过以下步骤配置分页: 1. 设置ID,以便在代码后面...

    ASP.NET中Repeater控件高级应用研究

    经过对ASP.NET中Repeater数据控件基本特征的分析,以及对实际应用系统中数据列表功能的提炼总结,提出并设计了挖掘其潜力的示例算法模型,重点介绍了控件模板的灵活性与定制使用方法。并通过典型应用示例,展示其...

Global site tag (gtag.js) - Google Analytics