转自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
>
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);
}
本文介绍了一个使用ASP.NET GridView实现邮件列表批量删除和自定义分页功能的方法。通过前台和后台代码结合,实现了全选、删除、首页、上一页、下一页、尾页等操作,并且能够自动更新页面索引。





