gridview自带分页 如何控制位置?我想把它搞在外面
gridview自带分页 如何控制位置?我想把它搞在外面
[解决办法]
如果你想任意的调整位置的话还是别用gridview了,分页又丑又不好,listview的自带DataPager分页不错,任意调整都可以,所以建议你换了吧
[解决办法]
private int pageSize = 0; //每页显示行数 private int pageCurrent = 0; //当前页号 private int pageCount = 0; //页数=总记录数/每页显示行数 private int nCurrent = 0; //当前记录行号 private int nMax = 0; //总记录数 private DataTable srcTable = null; //元数据 private void First_Click(object sender, EventArgs e) { try { pageCurrent = 1; //当前页数从1开始 nCurrent = 0; //当前记录数从0开始 if (srcTable == null || srcTable.Rows.Count == 0) return; DataTable table = LoadPageData(); ChangeDataSoure(table); First.Enabled =false; Prev.Enabled = false; Next.Enabled = true; End.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Prev_Click(object sender, EventArgs e) { try { pageCurrent--; nCurrent = pageSize * (pageCurrent - 1); if (srcTable == null || srcTable.Rows.Count == 0) return; DataTable table = LoadPageData(); ChangeDataSoure(table); bool b = pageCurrent <= 1 ? false : true; First.Enabled = b; Prev.Enabled = b; Next.Enabled = true; End.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Next_Click(object sender, EventArgs e) { try { pageCurrent++; nCurrent = pageSize * (pageCurrent - 1); if (srcTable == null || srcTable.Rows.Count == 0) return; DataTable table = LoadPageData(); ChangeDataSoure(table); bool b = pageCurrent >= pageCount ? false : true; Next.Enabled = b; End.Enabled = b; First.Enabled = true; Prev.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void End_Click(object sender, EventArgs e) { try { pageCurrent = pageCount; nCurrent = pageSize * (pageCurrent - 1); if (srcTable == null || srcTable.Rows.Count == 0) return; DataTable table = LoadPageData(); ChangeDataSoure(table); Next.Enabled =false; End.Enabled = false; First.Enabled = true; Prev.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void InitPageSet() { pageSize = 30; //设置页面行数 nMax = srcTable.Rows.Count; pageCount = (nMax / pageSize); //计算出总页数 if ((nMax % pageSize) > 0) { pageCount++; } pageCurrent = 1; //当前页数从1开始 nCurrent = 0; //当前记录数从0开始 First.Enabled =false; Prev.Enabled = false; bool b = pageCurrent == pageCount ? false : true; Next.Enabled = b; End.Enabled = b; } private DataTable LoadPageData() { int nStartPos = 0; //当前页面开始记录行 int nEndPos = 0; //当前页面结束记录行 DataTable dtTemp = null; if (srcTable == null || srcTable.Rows.Count == 0) return srcTable; try { dtTemp = srcTable.Clone(); //克隆DataTable结构框架 if (pageCurrent == pageCount) { nEndPos = nMax; } else { nEndPos = pageSize * pageCurrent; } nStartPos = nCurrent; //从元数据源复制记录行 for (int i = nStartPos; i < nEndPos; i++) { dtTemp.ImportRow(srcTable.Rows[i]); nCurrent++; } textEdit1.Text = pageCurrent.ToString(); Page.Text = string.Format("/{0}页", pageCount); } catch (Exception ex) { MessageBox.Show(ex.Message + "LoadPageData"); } return dtTemp; } private void ChangeDataSoure(DataTable table) { if (table == null) return; gridView1.Columns.Clear(); gridControl1.DataSource = null; gridControl1.DataSource = table; }
[解决办法]
设置pageindex属性即可
[解决办法]
自带的做不到外面,只能用自定义控件
[解决办法]
这个分页 资料很多
[解决办法]
AspNetPager 简单易用