以下是gridview的页脚 <PagerTemplate>
<table runat="server" id="table1">
<tr>
<td>
<asp:LinkButton ID="LbtnFirstPage" Text="<<" runat="server" CommandName="Page" CommandArgument="First"></asp:LinkButton>
<asp:LinkButton ID="LbtnPrevPage" Text="<" runat="server" CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
</td>
<td>
<asp:Panel ID="PnlPage" runat="server">
</asp:Panel>
</td>
<td>
<asp:LinkButton ID="LbtnNextPage" Text=">" runat="server" CommandName="Page" CommandArgument="Next"></asp:LinkButton>
<asp:LinkButton ID="LbtnLastPage" Text=">>" runat="server" CommandName="Page" CommandArgument="Last"></asp:LinkButton>
</td>
</tr>
</table>
</PagerTemplate>
以下是cs代码片断:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Display();
}
} protected void Display()
{
DataSet dataset = bllAddressBook.GetAllList();
GdvBook.DataSource = dataset.Tables[0];
GdvBook.DataBind(); Panel pnlTemp = GdvBook.BottomPagerRow.FindControl("PnlPage") as Panel;
{
if (pnlTemp != null)
{
pnlTemp.Controls.Clear(); int pageIndex = GdvBook.PageIndex;
int min = (GdvBook.PageIndex - 4);
int max = (GdvBook.PageIndex + 4);
if (max >= (GdvBook.PageCount - 1))
max = GdvBook.PageCount - 1;
if (min <= 0)
min = GdvBook.PageIndex;
for (int i = min; i <= max; i++)
{
LinkButton lbtnTemp = new LinkButton();
lbtnTemp.CommandName = "Page";
lbtnTemp.CommandArgument = i.ToString();
lbtnTemp.Text = (i + 1).ToString();
lbtnTemp.Font.Size = 11;
if (i == pageIndex)
{
lbtnTemp.Enabled = false;
lbtnTemp.Font.Bold = true;
}
pnlTemp.Controls.Add(lbtnTemp); }
}
}
}
运行之后12345分页选项有显示出来,但是点击之后却没有响应PageIndexChanging事件,我估计它响应的是LinkButton的Click事件。怎样改才能让它们响应PageIndexChanging事件呢?
HELP!!!
解决方案 »
- 初学者请教C#代码
- 【编码转换问题,在线等】
- Asp.net(C#) 框架问题
- 急!关于asp.net导出word的问题,各位高手帮忙
- 送分问题???
- 有没有哪一个adminscript可以更改站点的asp.net版本的?
- gaoshanshan(高姗姗) 请进来解释一下 你的类(方法) 有做web视频 的朋友进来顶拉.....
- 读取数据到asp:TextBox然后更新数据
- sql server在局域網內用電腦名稱可以連,但是用ip地址不能連(其它機都可以,就我的不行),提示sql 不存在或 拒絕訪問,請高手指點?
- MVC controller.Excute与正常路由的View不一致
- 如何得到Session存储的一个对象?
- 工厂模式,工厂有什么用?
你的代碼我試了半天。。我的都好有。把你前台代碼直接COPY 過來。進行 進接響應PAGEINDEXCHANGING 事件。。如果你還是不行。。就自動去綁定數據源。不用手動。。這樣連 後台的事件都不用寫了。。看看下邊這些 首页(First Page)命令按钮
该按钮的CommandName属性值设置为“Page”,CommandArgument属性值设置为“First”。用于执行导航,显示首页的操作。单击该按钮时,将引发PageIndexChanging和PageIndexChanged事件。
末页(Last Page)命令按钮
该按钮的CommandName属性值设置为“Page”,CommandArgument属性值设置为“Last”。用于执行导航,显示末页的操作。单击该按钮时,将引发PageIndexChanging和PageIndexChanged事件。
下一页(Next Page)命令按钮
该按钮的CommandName属性值设置为“Page”,CommandArgument属性值设置为“Next”。用于执行导航,显示下一页的操作。单击该按钮时,将引发PageIndexChanging和PageIndexChanged事件。
上一页(Prvious Page)命令按钮
该按钮的CommandName属性值设置为“Page”,CommandArgument属性值设置为“Prev”。用于执行导航,显示上一页的操作。单击该按钮时,将引发PageIndexChanging和PageIndexChanged事件。
页(Page)命令按钮
该按钮的CommandName属性值设置为“Page”,CommandArgument属性值设置为一个指示特定页的数字。用于在分页行中显示一个按钮。当其他导航按钮,例如首页、末页、下一页、上一页按钮,都不是非常适合时,可使用该命令按钮。单击该按钮时,将引发PageIndexChanging和PageIndexChanged事件。
//响应DataGrid控件的分页显示换页事件
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
BindGrid(); //这里重新绑定数据
}
<asp:GridView ID="GdvBook" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
AllowPaging="True" AutoGenerateColumns="False" PageSize="15" DataKeyNames="ID"
OnPageIndexChanged="GdvBook_PageIndexChanged" OnPageIndexChanging="GdvBook_PageIndexChanging"
OnDataBound="GdvBook_DataBound">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" Font-Size="12pt" />
<RowStyle BackColor="#E3EAEB" Font-Size="12pt" />
<EditRowStyle BackColor="#7C6F57" Font-Size="12pt" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="White" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#A2B082" Font-Bold="True" ForeColor="White" Font-Size="12pt" />
<AlternatingRowStyle BackColor="White" Font-Size="12pt" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CkbSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CallName" HeaderText="稱呼">
<ItemStyle Width="120px" />
<HeaderStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField HeaderText="電子郵箱" DataField="Email">
<ItemStyle Width="180px" />
<HeaderStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</asp:BoundField>
</Columns>
<PagerTemplate>
<table runat="server" id="table1">
<tr>
<td>
<asp:LinkButton ID="LbtnFirstPage" Text="<<" runat="server" CommandName="Page" CommandArgument="First"></asp:LinkButton>
<asp:LinkButton ID="LbtnPrevPage" Text="<" runat="server" CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
</td>
<td>
<asp:Panel ID="PnlPage" runat="server">
</asp:Panel>
</td>
<td>
<asp:LinkButton ID="LbtnNextPage" Text=">" runat="server" CommandName="Page" CommandArgument="Next"></asp:LinkButton>
<asp:LinkButton ID="LbtnLastPage" Text=">>" runat="server" CommandName="Page" CommandArgument="Last"></asp:LinkButton>
</td>
</tr>
</table>
</PagerTemplate>
<PagerSettings PageButtonCount="5" />
</asp:GridView>
private AddressBooks.BLL._AddressBook bllAddressBook = new AddressBooks.BLL._AddressBook();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Display();
}
} protected void Display()
{
DataSet dataset = bllAddressBook.GetAllList();
GdvBook.DataSource = dataset.Tables[0];
GdvBook.DataBind(); Panel pnlTemp = GdvBook.BottomPagerRow.FindControl("PnlPage") as Panel; if (pnlTemp != null)
{
#region
//LinkButton lbtnTemp1 = pnlTemp.FindControl("LbtnPage1") as LinkButton;
//LinkButton lbtnTemp2 = pnlTemp.FindControl("LbtnPage2") as LinkButton;
//LinkButton lbtnTemp3 = pnlTemp.FindControl("LbtnPage3") as LinkButton;
//LinkButton lbtnTemp4 = pnlTemp.FindControl("LbtnPage4") as LinkButton;
//LinkButton lbtnTemp5 = pnlTemp.FindControl("LbtnPage5") as LinkButton; //if (GdvBook.PageIndex == 0)
//{
// int pageIndex = GdvBook.PageIndex; // lbtnTemp1.Text = (pageIndex + 1).ToString();
// lbtnTemp1.Enabled = false;
// lbtnTemp1.Font.Bold = true; // lbtnTemp2.Enabled = true;
// lbtnTemp2.Text = (pageIndex + 2).ToString();
// lbtnTemp2.CommandName = "Page";
// lbtnTemp2.CommandArgument = (pageIndex + 1).ToString(); // lbtnTemp3.Enabled = true;
// lbtnTemp3.Text = (pageIndex + 3).ToString();
// lbtnTemp3.CommandName = "Page";
// lbtnTemp3.CommandArgument = (pageIndex + 2).ToString(); // lbtnTemp4.Enabled = true;
// lbtnTemp4.Text = (pageIndex + 4).ToString();
// lbtnTemp4.CommandName = "Page";
// lbtnTemp4.CommandArgument = (pageIndex + 3).ToString(); // lbtnTemp5.Enabled = true;
// lbtnTemp5.Text = (pageIndex + 5).ToString();
// lbtnTemp5.CommandName = "Page";
// lbtnTemp5.CommandArgument = (pageIndex + 4).ToString(); //} #endregion
pnlTemp.Controls.Clear(); int pageIndex = GdvBook.PageIndex;
int min = (GdvBook.PageIndex - 4);
int max = (GdvBook.PageIndex + 4);
if (max >= (GdvBook.PageCount - 1))
max = GdvBook.PageCount - 1;
if (min <= 0)
min = GdvBook.PageIndex;
for (int i = min; i <= max; i++)
{
LinkButton lbtnTemp = new LinkButton();
lbtnTemp.CommandName = "Page";
lbtnTemp.CommandArgument = i.ToString();
//lbtnTemp.Command += new CommandEventHandler(GdvBook_PageIndexChanging(lbtnTemp, GdvBook.gr));
lbtnTemp.Text = (i + 1).ToString();
lbtnTemp.Font.Size = 11;
if (i == pageIndex)
{
lbtnTemp.Enabled = false;
lbtnTemp.Font.Bold = true;
}
pnlTemp.Controls.Add(lbtnTemp); }
}
}
protected void GdvBook_PageIndexChanged(object sender, EventArgs e)
{
Display();
} protected void GdvBook_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GdvBook.PageIndex = e.NewPageIndex;
}
protected void GdvBook_DataBound(object sender, EventArgs e)
{ }
参考,也可使用aspnetpager控件