2010-07-23 9 views

Répondre

4

Option One

Utilisez le Remplacement contrôle ou API sur votre page. Cela vous permet de mettre en cache tout sur votre page à l'exception de la partie contenue dans le contrôle de substitution.

http://msdn.microsoft.com/en-us/library/ms227429.aspx

Une bonne façon d'utiliser est d'implémenter votre contrôle comme un simple contrôle du serveur qui rend le code html comme une chaîne, mais le fait dans le contexte de la page (qui est avec les ID de client correct). Scott Guthrie a un très bel exemple de comment cela fonctionne. Fonctionne bien avec AJAX appelle aussi par la façon ...

http://weblogs.asp.net/scottgu/archive/2006/10/22/Tip_2F00_Trick_3A00_-Cool-UI-Templating-Technique-to-use-with-ASP.NET-AJAX-for-non_2D00_UpdatePanel-scenarios.aspx

Extrait de l'article de Scott Gu ...

[WebMethod] 
    public string GetCustomersByCountry(string country) 
    { 
     CustomerCollection customers = DataContext.GetCustomersByCountry(country); 

     if (customers.Count > 0) 
      //RenderView returns the rendered HTML in the context of the callback 
      return ViewManager.RenderView("customers.ascx", customers); 
     else 
      return ViewManager.RenderView("nocustomersfound.ascx"); 
    } 

Option Deux

Render le contrôle dynamique via un Appel AJAX sur le chargement de la page. De cette façon, vous pouvez mettre en cache en toute sécurité la page entière (y compris l'appel AJAX) et seul le résultat rendu de l'appel change entre les pages.

+0

Cela fonctionne pour des chaînes assez simples ou une sortie html, mais pas si vous avez besoin d'une logique de rendu avancée. – Micah

+0

Puis-je rendre un contrôle utilisateur à partir d'un contrôle de substitution? – Micah

+0

Oui, vous pouvez. Voir ma mise à jour Cela fonctionne également pour les contrôles utilisateur. –