给你提一段完整代码:
<asp:datagrid id="GridUser" Font-Size="9pt" Font-Names="宋体" GridLines="None" CellPadding="1" BackColor="White" CellSpacing="1" BorderWidth="1px" CssClass="grid" BorderColor="#336699" Width="100%" AutoGenerateColumns="False" HorizontalAlign="Left" AllowPaging="True" Runat="server" PageSize="16">
.....</asp:datagrid>以下Vb代码:
'处理grid自带的跳页
Private Sub GridUser_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles GridUser.PageIndexChanged
Dim DsSource As DataView = MDset.Tables(0).DefaultView
GridUser.DataSource = DsSource
GridUser.CurrentPageIndex = e.NewPageIndex
MPageCurr = e.NewPageIndex
GridUser.DataBind()
End Sub '增加grid中页导航项的内容
Private Sub GridUser_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles GridUser.ItemCreated
If e.Item.ItemType = System.Web.UI.WebControls.ListItemType.Pager Then
Dim lblCount As New Label()
lblCount.Text = "总笔数:" & MRowCount & "笔" & " (共" & GridUser.PageCount & "页, 当前第" & MPageCurr + 1 & "页) "
e.Item.Cells(0).Controls.AddAt(0, lblCount) Dim lblSep1 As New Label()
lblSep1.Text = ""
lblSep1.Width = Unit.Pixel(8)
e.Item.Cells(0).Controls.AddAt(1, lblSep1) Dim BtnPre As New LinkButton()
BtnPre.Text = "首页"
BtnPre.CommandName = "Previous"
e.Item.Cells(0).Controls.AddAt(1, BtnPre) Dim lblSep2 As New Label()
lblSep2.Text = ""
lblSep2.Width = Unit.Pixel(8)
e.Item.Cells(0).Controls.Add(lblSep2) Dim BtnEnd As New LinkButton()
BtnEnd.Text = "尾页"
BtnEnd.CommandName = "End"
e.Item.Cells(0).Controls.Add(BtnEnd)
AddHandler BtnPre.Click, AddressOf SubGridPage
AddHandler BtnEnd.Click, AddressOf SubGridPage If GridUser.CurrentPageIndex = 0 Then
BtnPre.Enabled = False
End If If GridUser.CurrentPageIndex = GridUser.PageCount - 1 Then
BtnEnd.Enabled = False
End If
End If
End Sub '处理跳页点击事件
Sub SubGridPage(ByVal sender As Object, ByVal e As System.EventArgs)
Dim DsSource As DataView = MDset.Tables(0).DefaultView
GridUser.DataSource = DsSource
GridUser.DataBind() Dim btnSender As LinkButton
btnSender = CType(sender, LinkButton)
If (btnSender.CommandName = "Previous" And GridUser.CurrentPageIndex > 0) Then
GridUser.CurrentPageIndex = 0
MPageCurr = 0
GridUser.DataBind()
Else
If btnSender.CommandName = "End" And GridUser.CurrentPageIndex <= GridUser.PageCount - 1 Then
GridUser.CurrentPageIndex = GridUser.PageCount - 1
MPageCurr = GridUser.PageCount - 1
GridUser.DataBind()
End If
End If
End Sub
<asp:datagrid id="GridUser" Font-Size="9pt" Font-Names="宋体" GridLines="None" CellPadding="1" BackColor="White" CellSpacing="1" BorderWidth="1px" CssClass="grid" BorderColor="#336699" Width="100%" AutoGenerateColumns="False" HorizontalAlign="Left" AllowPaging="True" Runat="server" PageSize="16">
.....</asp:datagrid>以下Vb代码:
'处理grid自带的跳页
Private Sub GridUser_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles GridUser.PageIndexChanged
Dim DsSource As DataView = MDset.Tables(0).DefaultView
GridUser.DataSource = DsSource
GridUser.CurrentPageIndex = e.NewPageIndex
MPageCurr = e.NewPageIndex
GridUser.DataBind()
End Sub '增加grid中页导航项的内容
Private Sub GridUser_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles GridUser.ItemCreated
If e.Item.ItemType = System.Web.UI.WebControls.ListItemType.Pager Then
Dim lblCount As New Label()
lblCount.Text = "总笔数:" & MRowCount & "笔" & " (共" & GridUser.PageCount & "页, 当前第" & MPageCurr + 1 & "页) "
e.Item.Cells(0).Controls.AddAt(0, lblCount) Dim lblSep1 As New Label()
lblSep1.Text = ""
lblSep1.Width = Unit.Pixel(8)
e.Item.Cells(0).Controls.AddAt(1, lblSep1) Dim BtnPre As New LinkButton()
BtnPre.Text = "首页"
BtnPre.CommandName = "Previous"
e.Item.Cells(0).Controls.AddAt(1, BtnPre) Dim lblSep2 As New Label()
lblSep2.Text = ""
lblSep2.Width = Unit.Pixel(8)
e.Item.Cells(0).Controls.Add(lblSep2) Dim BtnEnd As New LinkButton()
BtnEnd.Text = "尾页"
BtnEnd.CommandName = "End"
e.Item.Cells(0).Controls.Add(BtnEnd)
AddHandler BtnPre.Click, AddressOf SubGridPage
AddHandler BtnEnd.Click, AddressOf SubGridPage If GridUser.CurrentPageIndex = 0 Then
BtnPre.Enabled = False
End If If GridUser.CurrentPageIndex = GridUser.PageCount - 1 Then
BtnEnd.Enabled = False
End If
End If
End Sub '处理跳页点击事件
Sub SubGridPage(ByVal sender As Object, ByVal e As System.EventArgs)
Dim DsSource As DataView = MDset.Tables(0).DefaultView
GridUser.DataSource = DsSource
GridUser.DataBind() Dim btnSender As LinkButton
btnSender = CType(sender, LinkButton)
If (btnSender.CommandName = "Previous" And GridUser.CurrentPageIndex > 0) Then
GridUser.CurrentPageIndex = 0
MPageCurr = 0
GridUser.DataBind()
Else
If btnSender.CommandName = "End" And GridUser.CurrentPageIndex <= GridUser.PageCount - 1 Then
GridUser.CurrentPageIndex = GridUser.PageCount - 1
MPageCurr = GridUser.PageCount - 1
GridUser.DataBind()
End If
End If
End Sub
......
MRowCount = MDset.Tables(0).Rows.Count
MPageCount = CInt(MRowCount / GridUser.PageSize)
If (GridUser.CurrentPageIndex > (MPageCount - 1)) Or (GridUser.CurrentPageIndex < 0) Then
GridUser.CurrentPageIndex = 0
End If
MPageCurr = GridUser.CurrentPageIndex
......
GridUser.DataSource = MDset.Tables(0).DefaultView
GridUser.DataBind()
我在DataGrid裡加了 OnPageIndexChanged="Grid_Change"
然後在aspx.cs中寫了寫了
void Grid_Change(Object sender, DataGridPageChangedEventArgs e)
{
// Set CurrentPageIndex to the page the user clicked.
ItemsGrid.CurrentPageIndex = e.NewPageIndex;
// Rebind the data.
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
運行時就出錯了:
Compiler Error Message: CS0122: 'bps.ccc.DataGrid1_PageIndexChanged(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)' is inaccessible due to its protection level請問這個是怎麼回事,是不是與設置這些有關系?