2013-06-13 6 views
1

я говорю об этом:Как получить текущую страницу BindingNavigator

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

мне как-то нужно, чтобы получить информацию из базы данных для этой строки.

Моя программа ищет все, поэтому я не уверен, как это работает. Но мне нужно, чтобы первичный ключ (id) из активной строки просматривался в окне bindingNavigator, затем из этого идентификатора запускался запрос, чтобы получить некоторые данные из другой таблицы с таким же внешним ключом, что и первичный ключ ,

Таким образом, для навигации по строкам в базе данных будет один навигационный блок, затем каждый раз, когда вы меняете активную строку, 3 текстовых поля справа получат связанные данные из другой таблицы (связанные с внешний ключ к первичному ключу в таблице 1).

Я пытался некоторое время, это, например:

MessageBox.Show(bindingNavigatorPnositionItem.GetCharIndexFromPosition); 

Я понимаю, что это не будет работать, я не уверен, что я делаю на самом деле, так как это не поможет на самом деле, если кто-то ищет, так как это не первичный ключ. Я мог бы прочитать данные в поле «id», которое отображается при изменении пользователем страницы, но как проверить, изменяет ли пользователь страницу?

+0

Ваша ссылка для изображения не показывает многое из того, что вы пытаетесь установить. – Edper

+0

Это таблица с включенной «Подробности», которую я перетащил из источников данных. Он говорит как 1 из 100, если есть 100 строк. – user2480500

+1

Возможно, я неправильно понимаю, но текущий элемент для источника привязки можно получить через 'bindingNavigator.BindingSource.Current' ... –

ответ

2

Я не совсем уверен, чего вы хотите достичь, но если вы хотите получить ID или Primary Key текущей просматриваемой записи и что она обновляется каждый раз, когда происходит смена позиции, тогда вы, вероятно, можете сделать это:

В вашей можно инициализировать PositionChangedEventHandler:

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()); 
} 
Смежные вопросы