ASP.NET, как обновить данные? - PullRequest
       18

ASP.NET, как обновить данные?

1 голос
/ 20 февраля 2012

В нашей компании мне нужно поддерживать веб-страницу со списком открытых заказов для наших сотрудников.

В приведенном ниже коде я фильтрую поиск по тем элементам, которые выбраны из списка DropDown ddlList1 и TextBox txtSearch, вроде как:

string sql
if (!String.IsNullOrEmpty(ddlList1.SelectedValue) &&
    !String.IsNullOrEmpty(txtSearch.Text)) {
  sql = string.Format("{0}={1}", ddlList1.SelectedValue, txtSearch.Text);
} else {
  sql = null;
}
GridView1.DataSource = db.Select(sql);
GridView1.DataBind();

Руководство хочет, чтобы эти данные были актуальными и не старше 10 минут.

Я не уверен, как это сделать. Большая часть моего кода написана на Windows Forms.

Пока что я нашел способ обновить страницу с помощью тега META:

<meta http-equiv="refresh" content="600;Summary.aspx" />

Однако, похоже, что WC3 не рекомендует использовать свойство refresh:

Примечание. Значение «refresh» следует использовать осторожно, так как оно отнимает у пользователя контроль над страницей. Использование «обновить» приведет к сбою в Руководстве по доступности веб-контента W3C.

Ссылка: HTML-мета http-эквивалент

Итак, каков рекомендуемый способ обновления моих данных?

Если это поможет, наш Сервер является более старой машиной SQL 2000.

[Примечание: я нашел этот вопрос на SO , где кто-то предложил использовать AJAX UpdatePanel . Мой проект в настоящее время не имеет элементов управления AJAX. Могу ли я избежать сложности AJAX (загрузить последний пакет, установить его в VS2010, добавить его в список ссылок моего проекта, а затем ссылаться на AJAX на каждой странице, где он используется) или просто укусить пулю?]

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

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

Вы также можете использовать элементы управления javascript или asp для принудительного обновления не только через метатег HTTP, но оно имеет точно такие же проблемы.

Если вы идете по пути использования панелей обновления, у вас есть несколько преимуществ. Во-первых, и, возможно, самое главное, если у вас есть много контента на странице, кроме обновления сетки, вы не будете рендерить его повторно. Это (потенциально) может быть значительным снижением нагрузки на сервер в зависимости от того, как выглядит вся ваша страница, или оно может быть минимальным. Далее, у вас есть более тонкое (и также настраиваемое) визуальное влияние обновления для пользователя. Если они хотят, чтобы сайт просто мерцал и обновлялся, панель обновлений сделает это без изменения курсора, вращений и т. Д. (Вы также можете добавить подобные вещи обратно, если хотите, чтобы они были очевидны для пользователи, когда панель обновлений отправляет обратно.)

1 голос
/ 20 февраля 2012

вы можете использовать ajax для получения данных с сервера и заполнения html-контейнера с помощью javascript на клиенте. Я не имею в виду обновленные панели Microsoft, но xmlhttp.

0 голосов
/ 20 февраля 2012

Если вы ищете простой обходной путь, попробуйте это:

<script>
   //Refreshing the page every 5 minutes
   setInterval("location.reload()", 300000);
</script>
...