2017-01-11 5 views
1

У меня есть форма редактирования, которая использует DropDownList, подключенный к таблице SQL-сервера с использованием DataSource. Эта форма редактирования позволяет пользователям устанавливать значение столбца «IsDeleted» в таблице равным 1, которое затем скрывает его от всех запросов приложения. (Таким образом, транзакция все еще существует в базе данных, но не в приложении)Обновление DataSource DropDownList в C# ASP.NET

Проблема, с которой я столкнулся, заключается в том, что если страница, на которой находится форма редактирования, полностью не оставлена, а затем снова введена, запись все еще сохраняется в DataSource.

По существу, DataSource не обновляется. (Он не выполняет свой оператор select и не перезаписывает до тех пор, пока вся страница не будет перезагружена). Я попытался использовать обновление страницы, и он, похоже, не работает, но только на другой странице полностью, а затем возвращается, кажется, обновляет DataSource.

Как бы я мог обновить содержимое DataSource программно, не заново воссоздавая весь сам DataSource?

ответ

0

Поэтому я в конечном итоге прибегал к тому, что я не хотел делать в надежде на то, что это будет «наилучшая практика» (и, надеюсь, уже встроено в DataSources), но кажется, что не должно было быть.

Все, что требовалось, это снова назначить параметры DataSource, а затем назначить DataSource обратно в DropDownList, как если бы я создавал новый.

Я создал следующий метод, который я затем вызывал в конце события моей кнопки «Удалить».

protected void DropDownList_Reload() 
    { 
     MyDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString; 
     MyDataSource.SelectCommand = "SELECT * FROM [tblMyTable] WHERE [IsDeleted] <> 1"; 

     cbxDropDownList.DataSourceID = "MyDataSource"; 
     cbxDropDownList.DataTextField = "MyHeader"; 
     cbxDropDownList.DataValueField = "MyHeader"; 
    } 
0

Возможно, вы захотите добавить код в следующий раз. Мое лучшее предположение, что вы ничего не делаете OnPostback.

+0

У меня буквально нет кода для DataSource и DDL в этот момент, за пределами разметки ASP дизайнера. (Игнорирование события SelectedIndexChanged в DDL, которое заполняет некоторые текстовые поля, но это не связано с вопросом). Это говорит о том, что я прочитал эту статью с обратной почтой, и похоже, что я вижу огромную дырку в моих знаниях по теме , Я надеюсь, что вы повели меня по пути, который позволит мне найти то, что касается моей проблемы. Но в конце я ищу программный способ сделать то, что вы делаете в дизайнере, когда вы нажимаете «Обновить схему» – Eisen

+0

Возможно, вы захотите проверить [link] https://www.asp.net/web- формы –

Смежные вопросы