如何获取bindingNavigator当前页面

时间:2013-06-13 01:31:47

标签: c#

我在说这个:

http://i.imgur.com/Q5J3LEK.png

我不知何故需要获取该行的数据库信息。

我的程序全部搜索,所以我不确定它是如何工作的。但我需要的是,从bindingNavigator窗口中查看活动行的主键(id),然后从该id运行查询以从另一个具有与主键相同的外键的表中获取一些数据

因此左边会有一个导航框来浏览数据库中的行,然后每次更改活动行时,右边的3个文本框将从另一个表中获取相关数据(与外部相关联)表1中主键的键。

我已经尝试了一段时间,例如:

 MessageBox.Show(bindingNavigatorPnositionItem.GetCharIndexFromPosition);

我意识到这不起作用,我不确定我在做什么,因为如果有人在搜索,这根本不会有用,因为它不是主键。我可以读取用户更改页面时显示的“id”字段中的数据 - 但如何检查用户是否更改了页面?

1 个答案:

答案 0 :(得分:2)

我不确定你想要实现什么,但是如果你想获得当前记录的ID或Primary Key,并且每当位置发生变化时它都会更新,那么你可以可能是这样的:

在您的Form_Load中,您可以初始化PositionChanged EventHandler

 this.bindingNavigator1.BindingSource.PositionChanged += new EventHandler(BindingSource_PositionChanged);

然后,事件处理程序将获得您想要的当前列或Primary Key。我们只说你的主键是CustomerID

 void BindingSource_PositionChanged(object sender, EventArgs e)
 {
     DataRowView currRow = (DataRowView)bindingNavigator1.BindingSource.Current;
     // You could use currRow["CustomerID"].ToString() value below to filter now the related table that has the Foreign Key
     MessageBox.Show(currRow["CustomerID"].ToString()); 
 }