GridView中显示记录的总条数,和当前页和总页数

本文介绍如何在ASP.NET的GridView控件中显示记录总数、当前页数及总页数。通过在SqlDataSource的Selected事件中添加代码来实现记录总数的显示,并利用GridView的RowDataBound事件获取当前页数和总页数。

GridView中显示记录的总条数,和当前页和总页数
GridView中,显示记录的总条数
在SqlDataSource 的Selected方法中添加如下

 程序代码

protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
Label4.Text = "共有记录:"+ e.AffectedRows.ToString()+"条";
}


在页面添加个Label

显示页数量和当前页数GridView的RowDataBound中添加如下代码:

 程序代码

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int num = GridView1.PageIndex + 1;
Label6.Text = "第" + num + "页/共" + GridView1.PageCount + "页";

### 在 DevExpress BandGrid 中动态调整每页显示记录数 在 DevExpress 的 `BandGrid` 中,动态调整每页显示记录数可以通过结合 `BindingSource` 自定义分页逻辑实现。以下是具体方法: #### 配置动态分页大小的核心代码 通过设置一个变量来存储当前的分页大小,并在需要时更新该变量以动态调整分页逻辑。 ```csharp // 定义分页大小 int pageSize = 10; // 创建数据源 List<Person> data = new List<Person> { new Person { Name = "张三", Age = 25, Address = "北京市" }, new Person { Name = "李四", Age = 30, Address = "上海市" }, // 添加更多数据... }; // 使用 BindingSource 绑定数据 BindingSource bindingSource = new BindingSource(); bindingSource.DataSource = data; // 设置 GridControl 的数据源 gridControl.DataSource = bindingSource; // 动态调整分页大小的方法 void UpdatePageSize(int newSize) { pageSize = newSize; int currentPosition = bindingSource.Position / pageSize * pageSize; // 计算当前页起始位置 bindingSource.Position = Math.Min(currentPosition, bindingSource.Count - 1); // 更新位置 UpdatePageInfo(); // 更新页脚信息 } // 更新页脚信息的方法 void UpdatePageInfo() { int currentPage = bindingSource.Position / pageSize + 1; int totalPages = (int)Math.Ceiling((double)bindingSource.Count / pageSize); gridView-footerPanel.Text = $"第 {currentPage} 页,共 {totalPages} 页"; } ``` #### 实现动态分页大小的用户交互 为了允许用户动态调整分页大小,可以添加一个下拉框或文本框供用户输入新的分页大小值。 ```csharp // 创建一个 ComboBox 供用户选择分页大小 ComboBox cbPageSize = new ComboBox(); cbPageSize.Items.AddRange(new object[] { 10, 20, 50, 100 }); cbPageSize.SelectedIndex = 0; // 绑定事件以处理分页大小变化 cbPageSize.SelectedIndexChanged += (s, e) => { int selectedPageSize = Convert.ToInt32(cbPageSize.SelectedItem); UpdatePageSize(selectedPageSize); }; // 将 ComboBox 添加到窗体 this.Controls.Add(cbPageSize); ``` #### 自定义分页组件的联动 如果使用了自定义分页组件[^1],需要确保在调整分页大小后重新计算当前页页数,并同步更新分页组件的状态。 ```csharp // 假设有一个自定义分页组件 CustomPager CustomPager customPager = new CustomPager(); // 更新分页组件状态 void UpdatePagerState() { int totalPages = (int)Math.Ceiling((double)bindingSource.Count / pageSize); customPager.TotalPages = totalPages; customPager.CurrentPage = bindingSource.Position / pageSize + 1; } // 在分页大小变化时调用 cbPageSize.SelectedIndexChanged += (s, e) => { int selectedPageSize = Convert.ToInt32(cbPageSize.SelectedItem); UpdatePageSize(selectedPageSize); UpdatePagerState(); }; ``` --- ### 注意事项 - 确保在调整分页大小后重新计算当前页的位置,以避免数据错乱。 - 如果数据量较大,建议优化数据加载逻辑,避免一次性加载所有数据导致性能问题[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值