پیاده سازی صفحات در کنترل Gridview با ASP.Net
در این مقاله توضیح خواهیم داد که چگونه صفحه بندی را در کنترل GridView در ASP.Net با استفاده از C # و VB.Net پیاده سازی کنید.
بانک اطلاعاتی
در اینجا از پایگاه Northwind مایکروسافت استفاده می کنیم. دستورالعمل های دانلود و نصب در مقاله زیر ارائه شده است.
پایگاه داده Northwind را دانلود و نصب کنید
کد HTML
کد HTML زیر شامل یک GridView ASP.Net با چهار ستون BoundField است. برای اجرای Paging در GridView، AllowPaging به درست تنظیم شده و رویداد OnPageIndexChanging به کار گرفته شده است.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true"
OnPageIndexChanging="OnPageIndexChanging" PageSize="10">
<Columns>
<asp:BoundField ItemStyle-Width="150px" DataField="CustomerID" HeaderText="Customer ID" />
<asp:BoundField ItemStyle-Width="150px" DataField="ContactName" HeaderText="Contact Name" />
<asp:BoundField ItemStyle-Width="150px" DataField="City" HeaderText="City" />
<asp:BoundField ItemStyle-Width="150px" DataField="Country" HeaderText="Country" />
</Columns>
</asp:GridView>
فضاهای نام
شما باید فضای نامهای زیر را وارد کنید.
C #
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
VB.Net
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
جمع آوری GridView از پایگاه داده
درون رویداد بارگذاری صفحه از صفحه، GridView با سوابق از جدول مشتریان پایگاه داده Northwind پر شده است.
C #
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindGrid();
}
}
private void BindGrid()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT CustomerId, ContactName, City, Country FROM Customers"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Me.BindGrid()
End If
End Sub
Private Sub BindGrid()
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand("SELECT CustomerId, ContactName, City, Country FROM Customers")
Using sda As New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using dt As New DataTable()
sda.Fill(dt)
GridView1.DataSource = dt
GridView1.DataBind()
End Using
End Using
End Using
End Using
End Sub
پیگیری صفحات در GridView
وقتی یک صفحه در GridView تغییر می کند یک رویداد handler اجرا می شود.
مقدار PageIndex صفحه که روی آن کلیک شد، درون ویژگی NewPageIndex از شیء GridViewPageEventArgs وجود دارد و آن را به Property PageIndex GridView تنظیم می کند و GridView دوباره با فراخوانی تابع BindGrid پر شده است.
C #
protected void OnPaging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
this.BindGrid();
}
VB.Net
Protected Sub OnPageIndexChanging(sender As Object, e As GridViewPageEventArgs)
GridView1.PageIndex = e.NewPageIndex
Me.BindGrid()
End Sub