Не сохраняется привязка данных
От: Str4nger Россия  
Дата: 02.09.04 10:11
Оценка:
Имеется сайт на asp.net написанный не мной, но мне приходится его доделывать. И значит есть там форма добавления вакансий, в которой несколько DropDownList'ов привязаны к DataSet'у. Привязка данных выполняется в коде через написанный другим челом объект dataopen. Вроде того:

if (this.DD_prof.Items.Count==0)
{
   this.DD_prof.DataSource=ds2;
   this.DD_prof.DataMember=ds2.Tables[0].TableName;
   this.DD_prof.DataTextField="name";
   this.DD_prof.DataValueField="id";
   this.DD_prof.DataBind();
}


Как видно, стоит условие на проверку наличия итемов, чтобы привязка не выполнялась повторно при сабмите формы. Тоже самое в принципе должно работать и через if (!this.IsPostBack). Но оно почему то не хочет работать! Список итемов как будто уничтожается при посылке формы. ViewState везде включен, не привязанные поля сохраняют значения. А привязанные каждый раз обнуляются. И совершенно не понятно почему, т.к. существует аналогичная практически форма, где те же самые алгоритмы работают. К тому же проверена на тестовом проекте, склепанном на скорую руку, что все должно работать так как задумано. Очень буду благодарен за помощь .
Re: Не сохраняется привязка данных
От: Gollum Россия  
Дата: 02.09.04 10:20
Оценка:
Здравствуйте, Str4nger, Вы писали:

S>ViewState везде включен,

Везде — это где? Может у того самого DD_prof (ужас какой!) он выключен?
Версия 2 — если исправить на !IsPostBack не заработает ли?
Дорогие ученые! У меня в подполе который год раздается подземный стук. Объясните пожалуйста, как он происходит?
Eugene Agafonov on the .NET

Re[2]: Не сохраняется привязка данных
От: Str4nger Россия  
Дата: 02.09.04 10:30
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Везде — это где? Может у того самого DD_prof (ужас какой!) он выключен?

Нет, у этого элемента проверил в первую очередь. У остальных же все нормально, т.к. повторяю, значения других полей сохраняются.

G>Версия 2 — если исправить на !IsPostBack не заработает ли?

Да нет, без разницы, просто элементы списка как будто пропадают после подтвержения формы. Т.е. если убрать проверку, тогда привязка выполняется каждый раз заново. Если условие на проверку Items.Count==0 — тоже самое, т.к. элементов оказывается уже нету. Если на !this.IsPostBack, тогда ни элементов, ни привязки.
Re[3]: Не сохраняется привязка данных
От: Gollum Россия  
Дата: 02.09.04 10:33
Оценка:
Здравствуйте, Str4nger, Вы писали:

S> Если на !this.IsPostBack, тогда ни элементов, ни привязки.


Хмм а дропдаун создается динамически или статически? Куда же девается дропдаун лист в таком случае непонятно.
В мире что-то не так? Или это у меня в голове?
Eugene Agafonov on the .NET

Re[4]: Не сохраняется привязка данных
От: Str4nger Россия  
Дата: 02.09.04 11:06
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Хмм а дропдаун создается динамически или статически? Куда же девается дропдаун лист в таком случае непонятно.


Дропдаун создан в процессе дизайна и он то никуда не девается. Пропадают нафиг все элементы при отсылке формы. Вот даже для проверки написал:

private void Page_Load(object sender, System.EventArgs e)
{
    Response.Write(this.DD_prof.Items.Count);

Выдает 0.
Больше всего меня удивляет, что в практически аналогичной форме (есть форма добавления вакансий для обычных юзеров, а есть для админской части, попроще немного, вот с ней то и проблемы) все работает отлично и там Items.Count не равен нулю. Глюки Майкрософта?
Может я уж не знаю, какие-нибудь более высокуровеневые вещи как-то влияют? Может ли влиять, то что эти формы — UserControl'ы тем более с одинаковыми именами, но в разных namespace'ах (viur.addvac и viur.admin.addvac). Сомнительно конечно, но я уж не знаю, что предположить.. Как всегда выяниться, что дело было в какой-то ерунде
Re: Не сохраняется привязка данных
От: Str4nger Россия  
Дата: 02.09.04 12:44
Оценка:
Тьфу млин, так и знал, что какая-то ерунда
Оказывает не везде был ViewState врублен, в файле default.aspx, который как раз таки и содержал этот контрол ViewState почему-то был отключен. Но что интересно, ведь не DataBind'нутые поля сохраняли значения.. Короче, надеюсь хотя бы кому-то пригодиться мой опыт
Re[2]: Не сохраняется привязка данных
От: Козьма Прутков Россия  
Дата: 02.09.04 13:53
Оценка:
Здравствуйте, Str4nger, Вы писали:

S>Тьфу млин, так и знал, что какая-то ерунда

S>Оказывает не везде был ViewState врублен, в файле default.aspx, который как раз таки и содержал этот контрол ViewState почему-то был отключен. Но что интересно, ведь не DataBind'нутые поля сохраняли значения.. Короче, надеюсь хотя бы кому-то пригодиться мой опыт

Так что же в этом странного-то: их значения отсылались клиентом. То, что там было в дизайнере наделано — так оно повторяется при каждом запросе. Вот лабели, например, датабайнднутые сохраняли значения? Вряд ли...
Да хранит вас господь в сухом прохладном месте...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.