Пользовательская пейджинговая система DatagridviewC#

Место общения программистов C#
Anonymous
Пользовательская пейджинговая система Datagridview

Сообщение Anonymous »

Я пытаюсь выполнить разбиение по страницам Datagridview, я уже выполнил разбиение по страницам, и все работает нормально, проблема в том, что когда я пытаюсь искать записи из базы данных, проблема в том, что Datagridview не меняется и данные возвращаются из база данных не отображается, а количество страниц продолжает увеличиваться при каждом поиске.
Пожалуйста, посмотрите это видео:
https://www.youtube.com/watch?v =Ina0OlZagSo&ab_channel=RabeeQabaha
вот мой пользовательский класс Datagridview:
class GV_Paging : Guna.UI2.WinForms.Guna2DataGridView
{
public int PageSize
{
get
{
return _pageSize;
}
set
{
_pageSize = value;
}
}

public int _pageSize = 10;
BindingSource bs = new BindingSource();
BindingList tables = new BindingList();
public void SetPagedDataSource(DataTable dataTable, BindingNavigator bnav)
{
DataTable dt = null;
int counter = 1;
foreach (DataRow dr in dataTable.Rows)
{
if (counter == 1)
{
dt = dataTable.Clone();
tables.Add(dt);
}
dt.Rows.Add(dr.ItemArray);
if (PageSize < ++counter)
{
counter = 1;
}
}
bnav.BindingSource = bs;
bs.DataSource = tables;
bs.PositionChanged += Bs_PositionChanged;
Bs_PositionChanged(bs, EventArgs.Empty);
}
void Bs_PositionChanged(object sender, EventArgs e)
{
this.DataSource = tables[bs.Position];
}
}

и вот как я заполняю данные в Datagridview:
GV.PageSize = Convert.ToInt32(Math.Floor(Convert.ToDecimal(GV.Height / GV.RowTemplate.Height))) - 1;
DT = DBConn.ExecuteDataTable("select_all_materials", CommandType.StoredProcedure);
GV.SetPagedDataSource(DT, bindingNavigator1);

а вот код для поиска данных в базе данных (работа над изменением текста текстового поля):
GV.PageSize = Convert.ToInt32(Math.Floor(Convert.ToDecimal(GV.Height / GV.RowTemplate.Height))) - 1;
DT = DBConn.ExecuteDataTable("search_materials_by_name", CommandType.StoredProcedure, new
SqlParameter[] { new SqlParameter("@name", Material_name_txt.Text.Trim()) });
GV.SetPagedDataSource(DT, bindingNavigator1);


Подробнее здесь: https://stackoverflow.com/questions/663 ... iew-paging

Вернуться в «C#»