伙计们,我正在尝试通过 C# windows 窗体应用程序中的 bindingnavigator 在我的 datagridview 中实现分页。
我只是将 datagridview 和 bindingnavigator 从工具栏拖到表单中。Datagridview 使用数据集将数据绑定到 SQL 服务器中的数据库表。我在 gridview 中添加了 3 个额外的按钮来执行一些功能。
现在我之前从未使用过 bindingnavigator,所以我只是从它的属性中选择了 datagridview1 的 bindingsource 作为 bindingnavigator 的数据源。
这就是我的表单在运行时的样子:
目前,datagridview1 显示我的表中的所有记录(截至目前为 31 条),绑定导航器下一个按钮只会将我带到下一条记录(例如,从 TicketID=1 到 TicketID=2)。
现在,我想做的是:
1.) Datagridview 应该每页只显示 10(或 50)条记录,并且应该使用 bindingnavigator 控件在页面之间切换,以便 UI 保持响应并且变得更加“内存效率”,因为最终我的数据库将有数千条记录.
2.) BindingNavigator 的控件应该出现在表单的中心,而不是左/右。我无法将其设置为从属性居中。
我的表格后面的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
}
private void Form9_Load(object sender, EventArgs e)
{
this.CenterToScreen();
try
{
this.tblTicketDetailTableAdapter.Fill(this.sTDataSet4.tblTicketDetail);
}
catch
{
MessageBox.Show("Error : Cannot establish a valid connection to database.", "SQL SERVER ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == dataGridView1.Columns["Detail"].Index)
{
//some code
}
else if (e.ColumnIndex == dataGridView1.Columns["Close"].Index)
{
//some code
}
else if (e.ColumnIndex == dataGridView1.Columns["ViewDetail"].Index)
{
//some code
}
}
}
现在我可以做些什么来使bindingnavigator
工作成为分页控件?