请先看下面的页面和后台代码:
<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)这个事件,不知道是为什么?请知道的朋友帮我解答下,在线等,先谢谢了
<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)这个事件,不知道是为什么?请知道的朋友帮我解答下,在线等,先谢谢了
你可以用linkbutton的onclick方法,在onclick方法里调用PagerButtonClick