Лично я склонен думать, что подход «сделай сам» лучше - легче отлаживать и легче писать.
Вы можете использовать javascript setInterval
для таймера и каждый раз, когда вызывается функцияВы можете инициировать ajax-запрос к своему программному обеспечению asp.net, чтобы получить любые данные, которые необходимо обновить.
Например, скажем, вам просто необходимо каждые 5 секунд обновлять текущее время встр.Предположим, у вас есть диапазон идентификатора currentTime на вашей странице, что-то вроде:
<asp:Label id="CurrentTime" runat="server" CSSClass="currentTimeLabel" />
В вашем начальном событии PageLoad вы устанавливаете время:
protected void PageLoad(...)
{
CurrentTime.Text = DateTime.Now.ToString();
}
Теперь вам нужно определить некоторый javascript на вашей странице, который будет каждые 5 секунд вызывать код и получать новое значение даты / времени.
Сделать это с чем-то вроде jQuery очень просто:
$(document).ready(function() {
setInterval(5000, updateTime);
});
function updateTime() {
url: "myPage.aspx/SomePageMethod",
success: function(data) {
$(".currentTimeLabel").text(data);
});
}
В ASP.NET заставить работать PageMethod - самая сложная часть (во всяком случае, для меня).Вам нужно создать публичную функцию в вашем коде с атрибутом «WebMethod».Примерно так:
[WebMethod]
public static string GetCurrentTime()
{
return DateTime.Now.ToSTring();
}
Я не тестировал ни один из этих кодов, но основная предпосылка - это звук и он должен работать нормально.
Теперь это может показаться более сложным, чем использованиеUpdatePanel, но мне легче, когда я знаю, какой код на самом деле выполняется на моей странице.
Если вам нужно обновить серию элементов управления вместо одного элемента управления, вы можете использовать более сложный веб-метод, который возвращаетДанные XML или JSON, а затем проанализируйте их с помощью JavaScript.