Repeater全选删除和分页实现思路及代码

代码如下:

<script type="text/javascript">
function SelectAll(box)
{
for(var i=0;i <document.form1.elements.length;i++)
{
var e=document.form1.elements[i];
if((e.type=='checkbox'))
{
var o=e.name.lastIndexOf('cbx');
if(o!=-1)
{
e.checked=box.checked;
}
}
}
}
</script>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<tr><th><input id= "chkHeader" type= "checkbox" onclick= "SelectAll(this)"/>全选</th><th>报到号</th><th>考生号</th><th>姓名</th><th>身份证号码</th><th>家庭地址</th><th>类别</th><th>专业</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr><td align="center" ><asp:CheckBox ID="cbx" runat="server" /></td><td><asp:Label id="lbl" Text='<%#Eval("id") %>' runat="server" ></asp:Label></td><td><%#Eval("ksh") %></td><td><%#Eval("xm") %></td><td><%#Eval("sfzh") %></td><td><%#Eval("jtdz") %></td><td><%#Eval("jhxzmc") %></td><td><%#Eval("lqzy") %></td></tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<br />
<asp:Button ID="btnDel" runat="server" onclick="btnDel_Click" Text="批量删除" OnClientClick="return confirm('确定要删除吗?该操作不可恢复!!!')" />
<br />
<br />
<webdiyer:AspNetPager ID="benren" runat="server" pagesize="2"
CssClass="anpager" onpagechanged="AspNetPager1_PageChanged"
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页"
ShowMoreButtons="False" ShowPageIndexBox="Never" AlwaysShow="True">
</webdiyer:AspNetPager>
</form>
</body>
==================
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string username = Session["username"].ToString();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["shan"].ConnectionString);
conn.Open();
SqlCommand count = new SqlCommand("select count(*) from do.so where baosongren = '"+username+"'", conn);
benren.RecordCount = (int)count.ExecuteScalar();
conn.Close();
BindData();
}
}
public void BindData()
{
string username = Session["username"].ToString();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["shnn"].ConnectionString);
string sql = "select * from dao where baosongren = '"+username+"' order by ID desc";//这句在大型数据中应该用:select top查询语句
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, benren.PageSize * (benren.CurrentPageIndex - 1), benren.PageSize, "temptbl");
DataTable dt = ds.Tables["temptbl"];
Repeater1.DataSource = dt;
Repeater1.DataBind();
}
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
//AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BindData();
}
protected void btnDel_Click(object sender, EventArgs e)
{
string delId = "";
//先遍历取得选中项
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
CheckBox cbx = (CheckBox)Repeater1.Items[i].FindControl("cbx");
Label lbl = (Label)Repeater1.Items[i].FindControl("lbl");
if (cbx != null)
{
if (cbx.Checked)
{
delId += lbl.Text + ",";
}
}
}
//去掉最后一个,
delId = (delId + ")").Replace(",)", "");
//Response.Write("删除的语句是:delete news_sosuo8_ where id_news_ in(" + delId + ")");
//自己写删除语句吧
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["shann"].ConnectionString);
SqlCommand del = new SqlCommand("delete so where id in(" + delId + ")", conn);
conn.Open();
int myupdate = del.ExecuteNonQuery();
conn.Close();
if (myupdate > 0)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript'>alert('删除成功!');</script>");
}
BindData();
}

(0)

相关推荐

  • 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.A,运行效果图  1.B,源代码(主要代码摘要) /App_Code/DBConnection.cs /App_Code/CategoryInfo.cs 复制代码 代码如下: using System.Collections.Generic; public class CategoryInfo { int categoryid; string categoryname; string categorydesc; IList<ArticleInfo> articles; /// <su

  • Repeater控件动态变更列(Header,Item和Foot)信息实现思路

    需求开发一个小报表,显示最近五个月的summary的数量统计,报表会随月份的变化而变化,如下图.第一列[Department]固定,第二至第六列,也就是说Nov 2012 这列会在下月的时候消失,其后的列会向前移,最后一列Mar 2013 会变为Apr 2013. 下图中,最底一行是显示每一列的总数(除第一列外). 为了这个报表,Insus.NET决定使用Repeater控件来实现.难度在于动态显法第二列至第六列的列名,以及绑定数据.最后一行计算总计的,只要完成上面的动态绑定之后,也算不上问题,

  • Repeater对数据进行格式化处理

    但这样很不方便.其实我们可以用下面2个方法: 三元表达式: 复制代码 代码如下: <td><%# int.Parse(Eval("price").ToString()) > 3600 ? "<a>#</a>" : Eval("price").ToString()%></td> 后台方法回传: 复制代码 代码如下: public string ReturnStr(string str

  • repeater 分列显示以及布局的实例代码

    前台 复制代码 代码如下: <div>        <table>            <tr>                <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">                    <ItemTemplate>         

  • 在jquery repeater中添加设置日期,下拉,复选框等控件

    如果, 有不明白的问题, 请先阅读 30 分钟掌握无刷新 Repeater. 示例代码下载: http://zsharedcode.googlecode.com/files/JQueryElementDemo.rar 本文将详细的讲解 Repeater 控件的模板中如何处理控件, 目录如下: * 准备 * html 元素 * 文本框 * 下拉框 * 多行文本框 * 复选框 * jQueryUI 插件 * jQueryUI 日期框 * jQueryUI 按钮 * jQueryUI 自动匹配 示例图

  • Repeater控件数据导出Excel(附演示动画)

    本演示中,我们实现这个Repeater控件数据导出Excel的功能. 我们准备一个对象: 复制代码 代码如下: Imports Microsoft.VisualBasic Namespace Insus.NET Public Class Catalog Private _ID As Integer Private _Name As String Public Property ID As Integer Get Return _ID End Get Set(value As Integer) _

  • Repeater与ListView功能概述及使用介绍

    Repeater Repeater(foreach)用于对绑定数据源中的数据进行遍历并按格式显示,每条数据以什么格式显示是由Repeater的<ItemTemplate>来决定的,模板会多次显示,就像foreach, ItemTemplate 中相当于{}中的语句.<ItemTemplate>姓名:<%#Eval("Name")%><b>年龄:<%#Eval("Age")%></b><br

  • Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)

    早上有分享<Repeater控件动态变更列(Header,Item和Foot)信息> ,是动态变更一些列的内容. 虽然它算不上是完全动态化,但它已经达到初期想要的效果.如果你稍有仔细,也能轻易把它弄出来.现另开一篇,Insus.NET不是重新另外写,而是想重构cs的代码,因为前一篇的代码虽然简单,但代码冗余过多. 重构开始:首先把这五个变量删除,因为在重构过程中,已经不需要这五个变量了. 复制代码 代码如下: //宣告5个变量,将用来存储那5个月份每个部分的数量 decimal c1, c2,

  • Repeater的FooterTemplate显示某列总计思路与代码

    练习一个小功能,在Repeater的FooterTemplate显示某列总计,参考下图最底Highlight一行. Hightlight一行,前五列有合并.最后两列中,一列显示"Total" ,一列显示总计,文本右对齐.结合下图来参考:接下来是.cs的程序:

随机推荐