Обновление ASP .Net Gridview - может ли это произойти до загрузки страницы? - PullRequest
0 голосов
/ 04 декабря 2009

Вот сценарий: -Gridview контроль -Календарь управления

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

Ответы [ 2 ]

0 голосов
/ 04 декабря 2009

Попробуйте добавить проверку IsPostBack перед установкой загрузки вашего GridView. Это не даст вам перезаписать его значения.

protected void Page_Load(object sender, EventArgs e) {
    if(!IsPostBack) {
         /*Populate your GridView*/
    }
}

protected void GridView_RowUpdated(object sender, GridViewUpdatedEventArgs e) 
{
    /*show your calendar here if you need to*/
    if(whatever) calendar.Visible = true;
}

Это должно сработать, если этого не произойдет, я бы порекомендовал поместить точки останова в ваши методы Page_Load и RowUpdated и пройти через них, предпочтительно с помощью Watch на источнике данных gridview (он станет красным, если он будет изменен) и смотреть в календаре. Visible, чтобы помочь вам увидеть, если что-то изменилось.

Для записи, управляющие события, такие как OnRowUpdated, никогда не сработают до Page_Load, если не вызваны явно по какой-то причине. Скорее всего, вы просто делаете что-то, что не обновляет содержимое GridView до того, как оно попадает в метод RowUpdated, или перезаписывает данные в GridView из-за отсутствия проверки! IsPostBack.

0 голосов
/ 04 декабря 2009

Page_Load вызывается перед событиями, которые вызываются до Render. Нет причины, по которой вы не могли бы в своем событии проверить значение раскрывающегося списка и установить видимое свойство элемента управления «Календарь», после чего в Render возникнет ошибка.

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