BasePartialCachingControl.CachePolicy Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'oggetto ControlCachePolicy associato al controllo utente di cui è stato eseguito il wrapping.
public:
property System::Web::UI::ControlCachePolicy ^ CachePolicy { System::Web::UI::ControlCachePolicy ^ get(); };
public System.Web.UI.ControlCachePolicy CachePolicy { get; }
member this.CachePolicy : System.Web.UI.ControlCachePolicy
Public ReadOnly Property CachePolicy As ControlCachePolicy
Valore della proprietà
Oggetto ControlCachePolicy che memorizza le proprietà relative alla cache di output del controllo utente di cui è stato eseguito il wrapping.
Esempio
Nell'esempio di codice seguente viene illustrato il modo in cui un controllo utente può essere caricato dinamicamente e modificato a livello di codice in fase di esecuzione. In questo esempio sono presenti tre parti:
Classe parziale, ,
LogOnControl
che eredita dalla classe base e a cui viene applicato l'attributo UserControlPartialCachingAttribute .Controllo utente usato con la
LogOnControl
classe parziale.Pagina Web Forms che ospita il controllo utente.
Per eseguire correttamente questo esempio, assicurarsi che il file di controllo utente (con estensione ascx), il relativo file code-behind (.cs o .vb) e la pagina Web Forms che ospita il controllo utente (.aspx) si trovi nella stessa directory.
La prima parte dell'esempio illustra come l'oggetto PartialCachingAttribute viene applicato a un controllo utente denominato LogOnControl
, il che significa che il controllo utente viene sottoposto a wrapping da un PartialCachingControl controllo in fase di esecuzione. Le LogOnControl
impostazioni di memorizzazione nella cache dell'oggetto possono essere modificate a livello di codice tramite l'oggetto associato ControlCachePolicy , disponibili tramite un riferimento all'oggetto PartialCachingControl che lo esegue il wrapping. In questo esempio le impostazioni di memorizzazione nella cache vengono esaminate durante l'inizializzazione della pagina e modificate se vengono soddisfatte alcune condizioni.
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
[PartialCaching(100)]
public class LogOnControl:UserControl
{
public TextBox user;
public TextBox password;
}
Imports System.Web.UI
Imports System.Web.UI.WebControls
<PartialCaching(100)> _
Public Class LogOnControl
Inherits UserControl
Public user As TextBox
Public password As TextBox
End Class
La seconda parte dell'esempio mostra un controllo utente usato con l'esempio precedente per illustrare la memorizzazione nella cache dei controlli utente.
<%@ control inherits = "LogOnControl" src = "LogOnControl.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<table style="font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing="15">
<tr>
<td><b>Login: </b></td>
<td><asp:TextBox id="user" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><asp:TextBox id="password" TextMode="Password" runat="server"/></td>
</tr>
<tr>
</tr>
</table>
</form>
</body>
</html>
<%@ control inherits = "LogOnControl" src = "LogOnControl.vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<table style="font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing="15">
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="user" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="password" TextMode="Password" runat="server"/></td>
</tr>
<tr>
</tr>
</table>
</form>
</body>
</html>
La terza parte dell'esempio illustra l'uso del LogOnControl
controllo utente da una pagina Web Forms.
<%@ Page Language="C#" Debug = "true"%>
<%@ Reference Control="Logonformcs.ascx" %>
<script language="C#" runat="server">
// The following example demonstrates how to load a user control dynamically at run time, and
// work with the ControlCachePolicy object associated with it.
// Loads and displays a UserControl defined in a seperate Logonform.ascx file.
// You need to have "Logonform.ascx" and "LogOnControl.cs" file in
// the same directory as the aspx file.
void Page_Init(object sender, System.EventArgs e) {
// Obtain a PartialCachingControl object which wraps the 'LogOnControl' user control.
PartialCachingControl pcc = LoadControl("Logonform.cs.ascx") as PartialCachingControl;
ControlCachePolicy cacheSettings = pcc.CachePolicy;
// If the control is slated to expire in greater than 60 Seconds
if (cacheSettings.Duration > TimeSpan.FromSeconds(60) ) {
// Make it expire faster. Set a new expiration time to 30 seconds, and make it
// an absolute expiration if it isnt already.
cacheSettings.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)));
cacheSettings.SetSlidingExpiration(false);
}
Controls.Add(pcc);
}
</script>
<%@ Page Language="VB" Debug = "true"%>
<%@ Reference Control="Logonformvb.ascx" %>
<script language="VB" runat="server">
' The following example demonstrates how to load a user control dynamically at run time, and
' work with the ControlCachePolicy object associated with it.
' Loads and displays a UserControl defined in a seperate Logonform.ascx file.
' You need to have "Logonform.ascx" and "LogOnControl.vb" file in
' the same directory as the aspx file.
Sub Page_Init(ByVal Sender As Object, ByVal e As EventArgs)
' Obtain a PartialCachingControl object which wraps the 'LogOnControl' user control.
Dim pcc As PartialCachingControl
pcc = CType(LoadControl("Logonform.vb.ascx"), PartialCachingControl)
Dim cacheSettings As ControlCachePolicy
cacheSettings = pcc.CachePolicy
' If the control is slated to expire in greater than 60 Seconds
If (cacheSettings.Duration > TimeSpan.FromSeconds(60)) Then
' Make it expire faster. Set a new expiration time to 30 seconds, and make it
' an absolute expiration if it isnt already.
cacheSettings.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)))
cacheSettings.SetSlidingExpiration(False)
End If
Controls.Add(pcc)
End Sub ' Page_Init
</script>
Commenti
La CachePolicy proprietà consente l'accesso a livello di codice all'oggetto ControlCachePolicy associato al controllo utente contenuto dall'istanza BasePartialCachingControl . L'oggetto ControlCachePolicy può essere modificato a livello di codice per influenzare il comportamento e le impostazioni di memorizzazione nella cache di un controllo utente.