C# Winform实现数据分页显示( 三 )


dataSet.Clear();
dataSet = laterBackHelper.getDataSet(laterBack);
initDataPage(dataSet.Tables[0].Rows.Count, page_step, 1);
initView(GetViewDataSet(dataSet, 1, page_step));
label_page_count.Text = total_page.ToString();
label_page_range.Text = "1-" + page_step.ToString();
label_all_item_count.Text = total_count.ToString();
}
//只能输入数字
private void only_num_press(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
//对行数据进行删除或修改操作
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
string action = dataGridView.Columns[e.ColumnIndex].Name;//操作类型
var cells = dataGridView.Rows[e.RowIndex].Cells;
LaterBack laterBack = new LaterBack(int.Parse(cells[0].Value.ToString()), int.Parse(cells[1].Value.ToString()), cells[2].Value.ToString(), cells[3].Value.ToString());
switch (action)
{
case "update":
//获取相应列的数据ID,弹出加载了该ID数据详细信息的Form,用以修改
StudentLateBackPanelRightUpdate studentLateBackPanelRightUpdate = new StudentLateBackPanelRightUpdate(laterBack);
studentLateBackPanelRightUpdate.Show();
break;
case "delete":
if (MessageBox.Show("确定删除这行数据吗?", "删除提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//获取相应列的数据ID,删除此数据记录
int result = laterBackHelper.delete(laterBack);
if(result > 0)
{
//dataSet.Clear();
dataSet = laterBackHelper.getAllDataSet();
initDataPage(dataSet.Tables[0].Rows.Count,page_step,1);
initView(GetViewDataSet(dataSet,1,page_step));
label_page_count.Text = total_page.ToString();
label_page_range.Text = "1-" + page_step.ToString();
label_all_item_count.Text = total_count.ToString();
}
}
break;
default:
break;
}
}
//获取要显示的数据源
public DataSet GetViewDataSet(DataSet a_ds,int from_index,int end_index)
{
//首先先声明一个DataSet对象和一个DataTable对象
DataSet l_ds = new DataSet();
DataTable l_dt = new DataTable();
//构建DataTable对象的列值
l_dt.Columns.Add("dor_id");//这些列名就是返回的DataSet的列名,可以随意添加
l_dt.Columns.Add("stu_id");
l_dt.Columns.Add("time");
l_dt.Columns.Add("reason");
//遍历传进来的DataSet的值,并对DataTable进行赋值操作
for (int i = from_index - 1; i < end_index ; i++)
{
DataRow dr = l_dt.NewRow();//首先新增一行,然后对其进行赋值
dr["dor_id"] = a_ds.Tables[0].Rows[i][0].ToString().Trim();
dr["stu_id"] = a_ds.Tables[0].Rows[i][1].ToString().Trim();
dr["time"] = a_ds.Tables[0].Rows[i][2].ToString().Trim();
dr["reason"] = a_ds.Tables[0].Rows[i][3].ToString().Trim();
l_dt.Rows.Add(dr);//这里一定要add进去
}
l_ds.Tables.Add(l_dt);//这里也不能忘记
return l_ds;
}
//combobox更改触发事件
private void combobox_selected_listen(object sender, EventArgs e)
{
page_step = int.Parse(comboBox_page_count.SelectedItem.ToString());
textBox_page_count.Text = 1.ToString();
label_page_range.Text = "1-" + page_step.ToString();
total_page = Convert.ToInt16( Math.Ceiling(Convert.ToDouble(total_count) / page_step));
label_page_count.Text = total_page.ToString();
initView(GetViewDataSet(dataSet, 1, page_step));
}
//输入页数变化
private void page_count_change(object sender, EventArgs e)
{
if (textBox_page_count.Text.Equals("")) return;
if (int.Parse(textBox_page_count.Text) < 1)
{
MessageBox.Show("输入页数不能小于1", "系统提示");
return;
}
if (int.Parse(textBox_page_count.Text) > total_page)
{
MessageBox.Show("输入页数超过总页数", "系统提示");
return;
}
current_page_index = int.Parse(textBox_page_count.Text);
var view_range = (current_page_index - 1)* page_step ;
if (view_range + page_step < total_count) {
initView(GetViewDataSet(dataSet, view_range + 1, view_range + page_step));
label_page_range.Text = (view_range + 1).ToString() + "-" + (view_range + page_step).ToString();
}
else {
initView(GetViewDataSet(dataSet, view_range + 1, total_count));
label_page_range.Text = (view_range + 1).ToString() + "-" + total_count.ToString();
}
}
private void button_first_page_Click(object sender, EventArgs e)


推荐阅读