自定义分页问题
请先看下面的页面和后台代码:
<table>
<tr>
<td>
<asp:datagrid id= "MyDataGrid " runat= "server " AutoGenerateColumns= "False " AllowCustomPaging= "false " HorizontalAlign= "Center " AlternatingItemStyle-BackColor= "#eeeeee " HeaderStyle-BackColor= "#aaaadd " Font-Size= "8pt " Font-Names= "Verdana " CellSpacing= "0 " CellPadding= "3 " GridLines= "Both " BorderWidth= "1 " BorderColor= "black " OnPageIndexChanged= "MyDataGrid_Page " PagerStyle-HorizontalAlign= "Right "PagerStyle-Mode= "NumericPages " PageSize= "5 " AllowPaging= "True ">
<AlternatingItemStyle BackColor= "#EEEEEE "> </AlternatingItemStyle>
<HeaderStyle BackColor= "#AAAADD " Font-Bold= "True " HorizontalAlign= "Center "> </HeaderStyle>
<PagerStyle HorizontalAlign= "Right " Mode= "NumericPages " Visible= "False "> </PagerStyle>
<Columns>
<asp:BoundColumn HeaderText= "标题 " DataField= "d_Name " HeaderStyle-Width= "100px "> </asp:BoundColumn>
<asp:BoundColumn HeaderText= "描述 " DataField= "d_Description " HeaderStyle-Width= "100px "> </asp:BoundColumn>
</Columns>
</asp:datagrid>
</td>
</tr>
<tr>
<td>
<p style= "FONT-SIZE:9pt " align= "center ">
<asp:Label ID= "lblPageCount " runat= "server "> </asp:Label>
<asp:Label ID= "lblCurrentIndex " runat= "server "> </asp:Label>
<asp:LinkButton ID= "btnFirst " runat= "server " Font-Names= "verdana " Font-size= "8pt " ForeColor= "navy " CommandArgument= "first " CommandName= "PagerButton "> </asp:LinkButton>
<asp:LinkButton ID= "btnPrev " runat= "server " Font-Names= "verdana " Font-size= "8pt " ForeColor= "navy " CommandArgument= "prev " CommandName= "PagerButton "> </asp:LinkButton>
<asp:LinkButton ID= "btnNext " runat= "server " Font-Names= "verdana " Font-size= "8pt " ForeColor= "navy " CommandArgument= "next " CommandName= "PagerButton "> </asp:LinkButton>
<asp:LinkButton ID= "btnLast " runat= "server " Font-Names= "verdana " Font-size= "8pt " ForeColor= "navy " CommandArgument= "last " CommandName= "PagerButton "> </asp:LinkButton>
</p>
</td>
</tr>
</table>
public partial class _Default : System.Web.UI.Page
{
private SqlConnection cn = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
{
btnFirst.Text = "首 页 ";
btnPrev.Text = "上一页 ";
btnNext.Text = "下一页 ";
btnLast.Text = "尾 页 ";
OpenDatabase();
BindGrid();
}
private void OpenDatabase()
{
cn.ConnectionString = @ "server=.\sqlexpress;Integrated Security=SSPI;database=DBTengYou ";
cn.Open();
}
private void ShowStats()
{
lblCurrentIndex.Text = "第 " + Convert.ToString((MyDataGrid.CurrentPageIndex + 1)) + " 页 ";
lblPageCount.Text = "总共 " + MyDataGrid.PageCount.ToString() + " 页 ";
}
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch (arg)
{
case "first ":
{
MyDataGrid.CurrentPageIndex = 0;
break;
}
case "next ":
{
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
{
MyDataGrid.CurrentPageIndex += 1;
}
break;
}
case "prev ":
{
if (MyDataGrid.CurrentPageIndex > 0)
{
MyDataGrid.CurrentPageIndex -= 1;
}
break;
}
case "last ":
{
MyDataGrid.CurrentPageIndex = MyDataGrid.PageCount - 1;
break;
}
default:
{
MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
break;
}
}
BindGrid();
ShowStats();
}
public void BindGrid()
{
SqlConnection myConnection = cn;
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter( "select d_Name,d_Description from Dimensionality ", myConnection);
adapter.Fill(ds, "Dimensionality ");
MyDataGrid.DataSource = ds.Tables[ "Dimensionality "].DefaultView;
MyDataGrid.DataBind();
ShowStats();
}
public void MyDataGrid_Page(object sender, DataGridPageChangedEventArgs e)
{
int startIndex = 0;
startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
ShowStats();
}
}
现在的问题是:当我点击linkbutton按钮后不能翻页。我调试了下,点击linkbutton后不会触发public void PagerButtonClick(object sender, EventArgs e)这个事件,不知道是为什么?请知道的朋友帮我解答下,在线等,先谢谢了
[解决办法]
你的 PagerButtonClick 是什么方法?
你可以用linkbutton的onclick方法,在onclick方法里调用PagerButtonClick