Установите для свойства элемента управления веб-пользователя значение GridView Selected Row - PullRequest
1 голос
/ 02 февраля 2010

У меня есть пользовательский веб-элемент управления (ascx), который предоставляет свойство «ID». То, что я хочу сделать, это установить это свойство, когда событие SelectedIndexChanged срабатывает в виде сетки на содержащей странице. Тем не менее, я не могу этого сделать ... Вот мой код:

 protected void grdPhysicians_SelectedIndexChanged(object sender, EventArgs e)
{        
    physicians_certif1.mdID = grdPhysicians.SelectedDataKey.ToString();
    mvData.SetActiveView(viewEdit);
    panAdditional.Visible = true;
}

Physicians_certif1 - это пользовательский элемент управления. Похоже, пользовательский элемент управления загружается до того, как событие SelectedIndexChanged сможет установить его свойство.

Любые люди идеи?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2010

Да, именно это и происходит. Вы должны посмотреть (и быть знакомым) со следующим ресурсом:

Жизненный цикл страницы ASP.Net

Страница загрузится, затем загрузится элемент управления, затем ваши события начнут срабатывать. Если у вас есть потребности в конфигурации, основанные на триггерах событий, лучше либо поместить эти конфигурации в события Page_LoadComplete или Page_PreRender рассматриваемого пользовательского элемента управления, либо применить инструкции «Переплетение» в методе Set вашего свойства:

public MyValue MyProperty()
{
  get
  {
    return _myProperty;
  }
  set
  {
    RebindMyControls();
    _myProperty = value;
  }
}
0 голосов
/ 02 февраля 2010

Жизненные циклы страницы ASP.Net могут быть трудны для понимания, особенно с помощью пользовательских элементов управления ascx, которые также имеют свой собственный жизненный цикл. Если вы устанавливаете свойство mdID в Page_Load страницы или элемента управления ASCX или жестко закодировали значение по умолчанию в XHTML, оно, вероятно, сбрасывается после срабатывания SelectedIndexChanged.

Установите точку останова в grdPhysicians_SelectedIndexChanged, установите наблюдение для physicians_certif1.mdID и пошагово просматривайте код с помощью отладчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...