Me.RKrishna Ответов: 2

Выбранного индекса комбобокса


Две ситуации:
1) я добавляю новую запись и выбираю ISBN из выпадающего списка. SelectedIndexChanged должен запустить и заполнить имя книги из базы данных. Это работает и прекрасно.

2) после начальной загрузки всех данных в форму, когда я перехожу от записи 1 к записи 2 и т.д., SelectedIndexChanged срабатывает и заполняет BookName из базы данных. Но это нежелательно.

Как определить и отличить новую запись от извлеченной записи, на основании чего эти действия будут контролироваться?

Что я уже пробовал:

Private Sub ISBNComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ISBNComboBox.SelectedIndexChanged
        Dim lISBN As String
        lISBN = ISBNComboBox.Text
        PopulateBookName() 'When ISBN is changed, Book Title should be updated
    End Sub

Bryian Tan

Возможно, вам придется обернуть код в if not postback. Пример

If Not Page.IsPostBack Then 
  PopulateBookName()
End

2 Ответов

Рейтинг:
2

Me.RKrishna

Название книги - это зависимое поле. На основе номера ISBN заполняется название книги. Вот и все.

Проблема заключается в следующем: когда я добавляю новые записи, основанные на ISBN, название книги должно быть заполнено.
Но когда я запрашиваю существующие записи из базы данных, извлеченный ISBN должен вызвать процедуру SelectedIndexChanged и не должен заполнять имя книги. В противном случае он помечает запись как отредактированную и запрашивает сохранение.


Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением.

НЕ опубликуйте свой ответ как новое "решение".

Рейтинг:
1

Vincent Maverick Durano

Вы должны показать нам, как ваш PopulateBookName() метод делал свое дело. По сути, вам просто нужно обновить свой SQL-запрос, чтобы получить последнюю запись, выполнив либо:

SELECT TOP 1 * FROM [TABLENAME] ORDER BY id DESC


Вы также можете использовать дату публикации для получения последней записи. Это действительно зависит от вас.