У меня проблемы с переменными webparts ... Я пришел из стандартного языка ASP, поэтому для меня хранение переменных в сеансе и других частях - это обычный способ сделать все =)
Теперь я должен был создать веб-часть, wp должен написать график из параметра, и я не могу понять, КАК переменные работают: я не могу понять, КОГДА сохранены и КОГДА удалены, и другие подобные вещи!
Позвольте мне объяснить: у меня есть веб-часть с панелью инструментов настройки справа, в которую я помещаю значения. Каждый раз, когда нажимается кнопка или изменяется значение в раскрывающемся списке, возникает событие, которое вызывает «CreateChild». "функция ..
Много раз данные «хранятся», в другое время - нет!
Это способ хранения значений (в функции переопределения ApplyChanges):
WPChartGenerator wpParent = (WPChartGenerator)this.ParentToolPane.SelectedWebPart;
wpParent.WebUrl = txtWebUrl.Text.Trim();
И в событии CreateChild я получаю значение как:
WPChartGenerator wpParent = (WPChartGenerator)this.ParentToolPane.SelectedWebPart;
this.ddlWeb = new DropDownList();
this.ddlWeb.ID = "ddlweb" + wpParent.ID;
ddlWeb.SelectedValue = wpParent.WebService;
Теперь .. Иногда это работает, например, когда я нажимаю кнопку, я вызываю код кнопки, а затем код для сохранения каждого значения. В некоторых случаях (например, кнопки) это работает, в других (например, событие выпадающего списка (изменение индекса). Это не удалось, и я обнаружил, что каждый объект в wpParent равен его начальному значению.
Еще одна вещь, которую я заметил, это то, что в определенных случаях, когда событие инициируется, первое, что должно быть выполнено (даже первым, чем связанный с событием код) il CreateChild (даже первым, чем OnLoad !!!)
Кто-нибудь может сказать мне, что я делаю неправильно? У кого-нибудь есть хорошие уроки по этому вопросу?
Спасибо и извините 4, мой школьный уровень английского языка =)
Забудьте, что каждая переменная была реализована как свойство, например:
[WebBrowsable(false)]
[Personalizable(PersonalizationScope.Shared)]
[WebPartStorage(Storage.Shared)]
public string WebUrl
{
get
{
return this.webUrl;
}
set
{
this.webUrl = value;
}
}