#652 - Un custom control per inserire il contenuto di file

Nello script #366 abbiamo visto come Response.WriteFile permetta con estrema facilità di scrivere a video il contenuto di un file HTML.
Seppur comod, di default non permette di inserire in un punto esatto della pagina il contenuto del file da leggere. E' dunque necessario creare un custom control, cosa che lo rende facile e possibile:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace ASPItalia.com.WebControls
{
  public class WriteFile: System.Web.UI.WebControls.WebControl
  {
    // proprietà per indicare il file da cui leggere

    public string FileName
    {
      set {filename = value;}
      get {return filename;}
    }
    private string filename;

    // scrivo a video

    protected override void Render(HtmlTextWriter output)
    {
      // scrivo il contenuto del file

      if (filename != null)
      {
        HttpContext ctx = HttpContext.Current;
        ctx.Response.WriteFile(ctx.Server.MapPath(filename));
      }
    }
  }
}

Basterà inserire il control in questo modo per avere il contenuto del file stampato nell'esatto punto della pagina:

<aspitalia:WriteFile Filename="evidenza.htm" runat="server" />

Questa tecnica permette, con facilità, di utilizzare anche il fragment caching su uno user control che contenga a sua volta questo custom control, in modo da minimizzare l'accesso al disco per la lettura del file.

Per approfondimenti si veda:
#366 - Leggere un file ed inserirne il contenuto sulla pagina corrente con ASP.NET
http://www.aspitalia.com/liste/usag/script.aspx?ID=366

Nota: Questo script contiene un allegato.


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC