بارگذاری داده ها توسط scroll در #C
یکشنبه 8 شهریور 1394در این مقاله با یک مثال، بارگذاری داده ها را در پیمایش به سمت پایین صفحه نشان می دهیم.
گام اول:
ابتدا یک جدول مانند زیر در دیتابیس خود ایجاد می کنیم.
CREATE TABLE Table1 ( id int identity(1,1), Column1 int, Column2 int )
گام دوم:
حال داده ها را در جدول قرار می دهیم. (برای فهم بهتر کارکرد برنامه آن را از اعداد 1 تا 60 پر کردیم)
گام سوم:
یک Windows Form Application می سازیم و یک DataGridView به فرم اضافه می کنیم.
به قسمت properties مربوط به form رفته و در بخش رویدادها روی رویداد Load رفته و آن را انتخاب می کنیم.
سپس به properties مربوط به DataGridView رفته و در بخش رویدادها، رویداد scroll و SelectionChanged را انتخاب می کنیم.
در ادامه نحوه پیاده سازی و مدیریت این رویدادها را خواهیم گفت.
گام چهارم:
کد مربوط به فرم و رویدادهای گفته شده به شکل زیر می باشد:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace LoadGridView { public partial class Form1 : Form { SqlConnection con = new SqlConnection("data source=.;initial catalog=example;User ID=sa;Password=123;;"); DataTable dt = new DataTable(); DataSet ds; BindingSource bi = new BindingSource(); SqlDataAdapter da; int pageIndex = 1; int PageSize = 20; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { LoadGridView(); } private void LoadGridView() { string str = "select * from Table1 where id between "+pageIndex+" and "+PageSize; da = new SqlDataAdapter(str,con); ds = new DataSet(); da.Fill(ds); dt = ds.Tables[0]; bi.DataSource = dt; dataGridView1.DataSource = bi; dataGridView1.ClearSelection(); } private int GetDisplayedRowsCount() { int count = dataGridView1.Rows[dataGridView1.FirstDisplayedScrollingRowIndex].Height; count = dataGridView1.Height / count; return count; } private void dataGridView1_Scroll(object sender, ScrollEventArgs e) { int display = dataGridView1.Rows.Count - dataGridView1.DisplayedRowCount(false); if (e.Type == ScrollEventType.SmallIncrement || e.Type == ScrollEventType.LargeIncrement) { if (e.NewValue >= dataGridView1.Rows.Count - GetDisplayedRowsCount()) { string str = "select * from Table1 where id between " + ((pageIndex * PageSize) + 1) + " and " + ((pageIndex + 1) * PageSize); da = new SqlDataAdapter(str, con); ds = new DataSet(); da.Fill(ds); dt.Merge(ds.Tables[0]); bi.DataSource = dt; dataGridView1.ClearSelection(); dataGridView1.FirstDisplayedScrollingRowIndex = display; pageIndex++; } } } private void dataGridView1_SelectionChanged(object sender, EventArgs e) { dataGridView1.ClearSelection(); } } }
حال پروژه را اجرا می کنیم، همان طور که مشاهده می کنید با پیمایش صفحه به سمت پایین، داده ها بارگذاری می شوند.
- C#.net
- 2k بازدید
- 3 تشکر