2016-06-11 2 views
0

Итак, у меня здесь смешанная ситуация, и я думал, что я на правильном пути, но, похоже, она не работает.Проблема с UpdatePanel в решении ASP.NET WebForms

Так вот что я хочу .....

У меня есть веб-страницу, которая использует карту, чтобы построить точку. Я не хочу вмешиваться в то, что делает пользователь, но я хочу периодически проверять базу данных, чтобы увидеть, нужно ли обновлять точки. Нет необходимости = просто запустите таймер. У вас есть обновление = Авто. Запустите событие щелчка кнопки «Обновить», которую пользователь может щелкнуть вручную.

Вот дорога я \ пытаюсь ....

Так у меня есть пользовательский интерфейс работает, как я хочу. У меня есть панель обновления, содержащая таймер обратного отсчета javascript. Когда таймер поднялся, он вызывает событие «Щелчок» скрытой кнопки. Проверка кода проверяет базу данных.

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

Вот что не работает ....

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

Я предполагаю, что весь рабочий процесс UpdatePanel предназначен для игнорирования любых обновлений страниц, которые влияют на объекты НЕ внутри панели обновления.

Я бы опубликовал код, но там действительно нет. В основном на моей форме у меня есть моя страница с кучей вещей. На этой странице есть UpdatePanel, который содержит JavaScript и метку (для отображения обратного отсчета таймера для пользователя).

В Code_Behind для моей скрытой кнопки (которая вызывается JavaScript), есть простой код .....

if (PageNeedsToBeUpdated() == true) 
{ 
     BuildPage(); 
} 

Итак, когда утверждение ЛОЖЬ ... все работает. Но когда это правда, мне нужна вся страница для реальной перезагрузки.

Спасибо .... и если я полностью об этом поменяю, я полностью готов пойти в другом направлении.

+0

Как насчет добавления autopostback = true для кода базы данных, который обновит страницу. – NepCoder

ответ

0

Управление таймером можно контролировать с помощью элемента управления UpdatePanel Control и Set Interval Timer на определенный интервал времени. Затем поместите свою логику в Timer_Tick Event. Теперь на определенном временном интервале ваша UpdatePanel будет обновлена.

+0

Итак, вы говорите, что таймер внутри моей панели обновления включен, когда мне нужна полная страница для обновления? –

+0

Если вы хотите обновить всю свою страницу, вы также можете сделать это в HTML. Например, если вы хотите обновить свою страницу каждые 10 секунд, добавьте тег в раздел html, например: и если вы хотите реализовать эта функциональность из кода позади вы можете сделать так: Response.AppendHeader («Обновить», «10»); –

+0

Я сделаю это. Я определенно имею доступ к ответу внутри моего кода, вопрос будет, если заголовок append игнорируется, потому что он не находится внутри панели обновления. –

0

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

0

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

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

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