Я новичок в ASP.net и стараюсь сделать сверхбыстрый медленный код быстрее.ASP.net: обновите GridView без обновления всей страницы? (AsyncPostBackTrigger очень медленный)
В настоящее время код использует GridView в UpdatePanel. UpdatePanel находится в модальном всплывающем окне. Всякий раз, когда этот модаль открывается, содержимое должно быть обновлено. Мы делаем это, используя AsyncPostBackTrigger, который, как я понимаю, проходит весь цикл генерации страницы перед возвратом и рендерингом таблицы.
.aspx.cs
public void UpdateWatchListPopup(object sender, System.EventArgs e)
{
grdWatchList.DataBind();
}
.aspx:
<asp:UpdatePanel ID="UpdatePanel3" runat="server" >
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UpdateWatchListPopupBtn" EventName="Click" />
</Triggers>
<ContentTemplate>
<div style="display:none">
<asp:Button ID="UpdateWatchListPopupBtn" runat="server" Text="" OnClick="UpdateWatchListPopup" />
</div>
<asp:GridView ID="grdWatchList" OnSorting="grdWatchList_Sorting" runat="server" OnRowCreated="grdWatchList_RowCreated" OnRowDataBound="grdWatchList_RowDataBound" AllowSorting="true" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
Это очень медленно (это занимает 5 секунд, чтобы отобразить результат), и это не потому, что есть много данные для возврата! Я предполагаю, что Page_Load() делает ненужную кучу вычислений для обновления этого конкретного GridView.
Есть ли другой способ обновить GridView асинхронно? Я думал об использовании WebMethod, который извлекает данные, а затем повторно заполняет таблицу вручную с клиентской стороны. Мне было интересно, есть ли другие варианты?
Спасибо
ли страница занимает 5 секунд, чтобы загрузить в первый раз также? – VDWWD
Да. По сути, все приложение находится на одной странице, и все данные извлекаются с самого начала. –