Je suis nouveau sur ASP.net et essaye de faire tourner un code super lent plus vite.ASP.net: Actualiser GridView sans actualiser la page entière? (AsyncPostBackTrigger vraiment lent)
Actuellement, le code utilise un GridView dans un UpdatePanel. Le UpdatePanel se trouve dans une fenêtre contextuelle modale. Chaque fois que ce modal est ouvert, le contenu doit être actualisé. Nous faisons cela en utilisant AsyncPostBackTrigger, qui, si je comprends bien, passe par le cycle de génération de la page entière avant de retourner et de rendre la table.
.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>
Ceci est vraiment lent (il faut 5 secondes pour afficher le résultat), et il est pas parce qu'il ya beaucoup de données à retourner! Ma supposition est que Page_Load() est en train de faire un tas de calculs inutiles pour rafraîchir ce GridView particulier.
Existe-t-il un autre moyen d'actualiser le GridView de manière asynchrone? J'ai pensé à utiliser un WebMethod qui récupère les données et repeuple la table manuellement depuis le côté client. Je me demandais s'il y a d'autres options?
Merci
Est-ce la page prend 5 secondes pour charger la première fois aussi? – VDWWD
Oui. Fondamentalement, l'ensemble de l'application est dans une seule page et toutes les données sont récupérées au début. –