转自http://www.cnweblog.com/maomao2008/archive/2007/01/05/195167.html
GridView 批量删除,自定义分页,定位页码
前台代码:
<
table
width
="100%"
height
="20"
border
="1"
align
="center"
cellpadding
="0"
cellspacing
="0"
bordercolorlight
="#FFFFFF"
bordercolordark
="#E6E6E6"
bgcolor
="#FFFFFF"
>
< tr bgcolor ="#FFFFFF" >
< td width ="7%" align ="center" >
< asp:CheckBox ID ="cbAll" runat ="server" AutoPostBack ="True" OnCheckedChanged ="cbAll_CheckedChanged" /></ td >
< td width ="8%" align ="center" >< img src ="images/bz.gif" width ="6" height ="11" ></ td >
< td width ="9%" align ="center" >< img src ="images/mail.gif" width ="14" height ="11" ></ td >
< td width ="16%" align ="center" > 发件人 </ td >
< td width ="39%" align ="center" > 标题 </ td >
< td width ="21%" align ="center" > 日期 </ td >
</ tr ></ table >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False"
BackColor ="White" BorderColor ="#CC9966" BorderWidth ="1px" CellPadding ="4"
DataKeyNames ="id" HorizontalAlign ="Center"
Width ="100%" BorderStyle ="None" ShowHeader ="False" AllowPaging ="True" OnDataBound ="GridView1_DataBound" >
< FooterStyle BackColor ="#FFFFCC" ForeColor ="#330099" />
< Columns >
< asp:TemplateField >
< ItemStyle HorizontalAlign ="Center" />
< ItemTemplate >
< asp:CheckBox ID =cb runat =server />
</ ItemTemplate >
</ asp:TemplateField >
< asp:ImageField HeaderImageUrl ="images/bz.gif" >
< ItemStyle Width ="8%" />
</ asp:ImageField >
< asp:TemplateField HeaderImageUrl ="images/mail.gif" >
< ItemTemplate >
< img src =<%# Eval("view").ToString() =="0"?"images/mailread.gif":"images/mail.gif" % > border=0 align=middle />
</ ItemTemplate >
< ItemStyle HorizontalAlign ="Center" Width ="9%" />
</ asp:TemplateField >
< asp:BoundField DataField ="email" HeaderText ="发件人" >
< ItemStyle Width ="16%" />
</ asp:BoundField >
< asp:HyperLinkField DataNavigateUrlFields ="id" DataNavigateUrlFormatString ="viewmail.aspx?id={0}"
DataTextField ="title" HeaderText ="标题" >
< ItemStyle Width ="39%" />
</ asp:HyperLinkField >
< asp:BoundField DataField ="date" DataFormatString ="{0:d}" HeaderText ="日期" >
< ItemStyle Width ="21%" />
</ asp:BoundField >
</ Columns >
< PagerTemplate >
</ PagerTemplate >
< SelectedRowStyle BackColor ="#FFCC66" ForeColor ="#663399" Font-Bold ="True" />
< PagerStyle BackColor ="#FFFFCC" ForeColor ="#330099" HorizontalAlign ="Center" />
< HeaderStyle BackColor ="#990000" Font-Bold ="True" ForeColor ="#FFFFCC" />
< RowStyle BackColor ="White" ForeColor ="#330099" />
</ asp:GridView >
< table width ="100%" height ="20" border ="1" cellpadding ="0" cellspacing ="0" bordercolorlight ="#FFFFFF" bordercolordark ="#E6E6E6" bgcolor ="#FFFFFF" >
< tr >< td >
< asp:Button ID ="Button1" runat ="server" Text ="全选" OnClick ="Button1_Click" />
< asp:Button ID ="Button2" runat ="server" Text ="删除" OnClick ="Button2_Click" /></ td >
< td align =right >
< asp:LinkButton ID ="lnkbtnFrist" runat ="server" OnClick ="lnkbtnFrist_Click" > 首页 </ asp:LinkButton >
< asp:LinkButton ID ="lnkbtnPre" runat ="server" OnClick ="lnkbtnPre_Click" > 上一页 </ asp:LinkButton >
< asp:Label ID ="lblCurrentPage" runat ="server" ></ asp:Label >
< asp:LinkButton ID ="lnkbtnNext" runat ="server" OnClick ="lnkbtnNext_Click" > 下一页 </ asp:LinkButton >
< asp:LinkButton ID ="lnkbtnLast" runat ="server" OnClick ="lnkbtnLast_Click" > 尾页 </ asp:LinkButton >
跳转到第 < asp:DropDownList ID ="ddlCurrentPage" runat ="server" AutoPostBack ="True" OnSelectedIndexChanged ="DropDownList1_SelectedIndexChanged" >
</ asp:DropDownList > 页 </ td >
</ tr ></ table >
后台代码:
< tr bgcolor ="#FFFFFF" >
< td width ="7%" align ="center" >
< asp:CheckBox ID ="cbAll" runat ="server" AutoPostBack ="True" OnCheckedChanged ="cbAll_CheckedChanged" /></ td >
< td width ="8%" align ="center" >< img src ="images/bz.gif" width ="6" height ="11" ></ td >
< td width ="9%" align ="center" >< img src ="images/mail.gif" width ="14" height ="11" ></ td >
< td width ="16%" align ="center" > 发件人 </ td >
< td width ="39%" align ="center" > 标题 </ td >
< td width ="21%" align ="center" > 日期 </ td >
</ tr ></ table >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False"
BackColor ="White" BorderColor ="#CC9966" BorderWidth ="1px" CellPadding ="4"
DataKeyNames ="id" HorizontalAlign ="Center"
Width ="100%" BorderStyle ="None" ShowHeader ="False" AllowPaging ="True" OnDataBound ="GridView1_DataBound" >
< FooterStyle BackColor ="#FFFFCC" ForeColor ="#330099" />
< Columns >
< asp:TemplateField >
< ItemStyle HorizontalAlign ="Center" />
< ItemTemplate >
< asp:CheckBox ID =cb runat =server />
</ ItemTemplate >
</ asp:TemplateField >
< asp:ImageField HeaderImageUrl ="images/bz.gif" >
< ItemStyle Width ="8%" />
</ asp:ImageField >
< asp:TemplateField HeaderImageUrl ="images/mail.gif" >
< ItemTemplate >
< img src =<%# Eval("view").ToString() =="0"?"images/mailread.gif":"images/mail.gif" % > border=0 align=middle />
</ ItemTemplate >
< ItemStyle HorizontalAlign ="Center" Width ="9%" />
</ asp:TemplateField >
< asp:BoundField DataField ="email" HeaderText ="发件人" >
< ItemStyle Width ="16%" />
</ asp:BoundField >
< asp:HyperLinkField DataNavigateUrlFields ="id" DataNavigateUrlFormatString ="viewmail.aspx?id={0}"
DataTextField ="title" HeaderText ="标题" >
< ItemStyle Width ="39%" />
</ asp:HyperLinkField >
< asp:BoundField DataField ="date" DataFormatString ="{0:d}" HeaderText ="日期" >
< ItemStyle Width ="21%" />
</ asp:BoundField >
</ Columns >
< PagerTemplate >
</ PagerTemplate >
< SelectedRowStyle BackColor ="#FFCC66" ForeColor ="#663399" Font-Bold ="True" />
< PagerStyle BackColor ="#FFFFCC" ForeColor ="#330099" HorizontalAlign ="Center" />
< HeaderStyle BackColor ="#990000" Font-Bold ="True" ForeColor ="#FFFFCC" />
< RowStyle BackColor ="White" ForeColor ="#330099" />
</ asp:GridView >
< table width ="100%" height ="20" border ="1" cellpadding ="0" cellspacing ="0" bordercolorlight ="#FFFFFF" bordercolordark ="#E6E6E6" bgcolor ="#FFFFFF" >
< tr >< td >
< asp:Button ID ="Button1" runat ="server" Text ="全选" OnClick ="Button1_Click" />
< asp:Button ID ="Button2" runat ="server" Text ="删除" OnClick ="Button2_Click" /></ td >
< td align =right >
< asp:LinkButton ID ="lnkbtnFrist" runat ="server" OnClick ="lnkbtnFrist_Click" > 首页 </ asp:LinkButton >
< asp:LinkButton ID ="lnkbtnPre" runat ="server" OnClick ="lnkbtnPre_Click" > 上一页 </ asp:LinkButton >
< asp:Label ID ="lblCurrentPage" runat ="server" ></ asp:Label >
< asp:LinkButton ID ="lnkbtnNext" runat ="server" OnClick ="lnkbtnNext_Click" > 下一页 </ asp:LinkButton >
< asp:LinkButton ID ="lnkbtnLast" runat ="server" OnClick ="lnkbtnLast_Click" > 尾页 </ asp:LinkButton >
跳转到第 < asp:DropDownList ID ="ddlCurrentPage" runat ="server" AutoPostBack ="True" OnSelectedIndexChanged ="DropDownList1_SelectedIndexChanged" >
</ asp:DropDownList > 页 </ td >
</ tr ></ table >
void
DataBinds()
{
if (!opMail.ReceiveGetList(userid))
{
base.MessageBox(string.Empty, opMail.strErrMsg);
}
else
{
this.GridView1.DataSource = opMail.dataView;
this.GridView1.DataBind();
}
this.ddlCurrentPage.Items.Clear();
for (int i = 1; i <= this.GridView1.PageCount; i++)
{
this.ddlCurrentPage.Items.Add(i.ToString());
}
this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;
}
// 全选checkbox
protected void Button1_Click( object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = true;
}
}
// 删除所选
protected void Button2_Click( object sender, EventArgs e)
{
for (int rowindex = 0; rowindex < this.GridView1.Rows.Count; rowindex++)
{
if (((CheckBox)this.GridView1.Rows[rowindex].Cells[0].FindControl("cb")).Checked == true)
{
//删除Convert.ToInt32(this.GridView1.DataKeys[rowindex].Value)
if (!opMail.ReceiveDelete(Convert.ToInt32(this.GridView1.DataKeys[rowindex].Value)))
{
base.MessageBox(string.Empty, opMail.strErrMsg);
}
}
}
DataBinds();
}
protected void GridView1_PageIndexChanging( object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
DataBinds();
}
protected void cbAll_CheckedChanged( object sender, EventArgs e)
{
if (this.cbAll.Checked == true)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = true;
}
}
else
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = false;
}
}
}
protected void DropDownList1_SelectedIndexChanged( object sender, EventArgs e)
{
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
DataBinds();
}
protected void lnkbtnFrist_Click( object sender, EventArgs e)
{
this.GridView1.PageIndex = 0;
DataBinds();
}
protected void lnkbtnPre_Click( object sender, EventArgs e)
{
if (this.GridView1.PageIndex > 0)
{
this.GridView1.PageIndex = this.GridView1.PageIndex - 1;
DataBinds();
}
}
protected void lnkbtnNext_Click( object sender, EventArgs e)
{
if (this.GridView1.PageIndex < this.GridView1.PageCount)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
DataBinds();
}
}
protected void lnkbtnLast_Click( object sender, EventArgs e)
{
this.GridView1.PageIndex = this.GridView1.PageCount;
DataBinds();
}
protected void GridView1_DataBound( object sender, EventArgs e)
{
this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + 1, this.GridView1.PageCount);
}
{
if (!opMail.ReceiveGetList(userid))
{
base.MessageBox(string.Empty, opMail.strErrMsg);
}
else
{
this.GridView1.DataSource = opMail.dataView;
this.GridView1.DataBind();
}
this.ddlCurrentPage.Items.Clear();
for (int i = 1; i <= this.GridView1.PageCount; i++)
{
this.ddlCurrentPage.Items.Add(i.ToString());
}
this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;
}
// 全选checkbox
protected void Button1_Click( object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = true;
}
}
// 删除所选
protected void Button2_Click( object sender, EventArgs e)
{
for (int rowindex = 0; rowindex < this.GridView1.Rows.Count; rowindex++)
{
if (((CheckBox)this.GridView1.Rows[rowindex].Cells[0].FindControl("cb")).Checked == true)
{
//删除Convert.ToInt32(this.GridView1.DataKeys[rowindex].Value)
if (!opMail.ReceiveDelete(Convert.ToInt32(this.GridView1.DataKeys[rowindex].Value)))
{
base.MessageBox(string.Empty, opMail.strErrMsg);
}
}
}
DataBinds();
}
protected void GridView1_PageIndexChanging( object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
DataBinds();
}
protected void cbAll_CheckedChanged( object sender, EventArgs e)
{
if (this.cbAll.Checked == true)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = true;
}
}
else
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("cb")).Checked = false;
}
}
}
protected void DropDownList1_SelectedIndexChanged( object sender, EventArgs e)
{
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
DataBinds();
}
protected void lnkbtnFrist_Click( object sender, EventArgs e)
{
this.GridView1.PageIndex = 0;
DataBinds();
}
protected void lnkbtnPre_Click( object sender, EventArgs e)
{
if (this.GridView1.PageIndex > 0)
{
this.GridView1.PageIndex = this.GridView1.PageIndex - 1;
DataBinds();
}
}
protected void lnkbtnNext_Click( object sender, EventArgs e)
{
if (this.GridView1.PageIndex < this.GridView1.PageCount)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
DataBinds();
}
}
protected void lnkbtnLast_Click( object sender, EventArgs e)
{
this.GridView1.PageIndex = this.GridView1.PageCount;
DataBinds();
}
protected void GridView1_DataBound( object sender, EventArgs e)
{
this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + 1, this.GridView1.PageCount);
}