Mattepuffo jQuery DataTable e Asp.NET


I Web Form di Asp.NET hanno parrecchi controlli server utili, tipo le GridView per rappresentare i dati in forma tabellarre.

Io personalmene trovo questo controllo un pò obsoleto.

Ad esempio già per il fatto che quando fai il sorting la pagina viene ricaricata.....

Io ho optato per il plugin DataTable di jQuery, che già uso con soddisfazione in PHP.

Lo trovo molto più comodo e moderno.

Vediamo come usarlo in pagine Asp.NET.

Prima di tutto abbiamo una classica funzione che ci restituisce un DataSet o simili:

        public DataSet getCodiciClienti()
        {
            connection().Open();
            OdbcCommand cmd = new OdbcCommand();
            OdbcDataAdapter adapter = new OdbcDataAdapter();
            DataSet ds = new DataSet();
            cmd.CommandText = "SELECT * FROM clienti";
            cmd.Connection = conn;
            adapter.SelectCommand = cmd;
            adapter.Fill(ds);
            ds.Dispose();
            conn.Close();
            return ds;
        }

Nulla di nuovo.

Poi prepariamo a scarichiamo il tutto.

Abbiamo bisogno di jQuery, del plugin che troviamo qua, di una tabella per raccogliere i dati, di un file JS e di un controllo Repeater.

Quindi nell'head della pagina:

<link rel="stylesheet" type="text/css" href="Styles/demo_table_jui.css" />
<link rel="stylesheet" type="text/css" href="Styles/ui-lightness/jquery-ui-1.8.23.custom.css" />
<script type="text/javascript" src="Scripts/jquery182.js"></script>
<script type="text/javascript" src="Scripts/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="Scripts/script.js"></script>

I primi due CSS servono per lo stile della tabella; notate che sto facendo uso di un CSS di jQuery UI.

Questa la funzione JS:

$(document).ready(function () {
    $('.dtable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers"
    });
});

Con il primo parametro indico di usare lo stile di jQuery UI.

Mattepuffo Asp.NET: accedere a elementi in pagine Master


Una cosa che mi piace molto dell'Asp.NET è il concetto di pagine Master, dove in pratica si impostano tutte le parti comuni delle pagine.

Poi ogni pagina avrà il suo contenuto specifico.

Ogni pagina ha anche un suo file di code-behind (in Visual Basic.NET o C#) con il quale è possibile accedere a tutti gli elementi della pagina semplicemente attraverso l'attributo ID (oltre che fare tutte le altre operazioni che vi pare).

Ma se volessimo accedere ad un elemento che sta nella Master?

Ad esempio io uso una Label per eventuali errori; questa label è nella Master in modo da non doverla replicare per tutte le pagine:

<asp:Label ID="lbl_error" runat="server" Text=""></asp:Label>

Un semplice oggetto Label con ID; se provate a richiamare quell'ID in una pagina vi verrà segnalato un errore.

Mattepuffo Connessione a database Informix con C# e ODBC


Argomento che da quanto ho visto in giro è ancora molto in voga, anche se praticamente i databse Informix sono destinati a estinguersi.

Nel mio caso specifico devo creare un sito intranet per l'azienda in Asp.NET.

Il database del nostro gestionale è Informix.

Il che rende tutto più complicato.

Ma vediamo come fare.

Prima di tutto dovete scaricare e installare l'IBM Informix Client SDK.

Questo è indispensabile!!

Una volta installato provate a creare una connessione tramite ODBC; per farlo andate in Start -> Pannello di controllo -> Strumenti di amministrazione -> Origini dati (ODBC).

Se tutto vi funziona potete anche provare a creare una macro su Excel e vedere se estraete i dati in modo corretto.

Una volta fatto questo create il vostro progetto in Visual Studio.

Diciamo che la classe che andremo a creare può essere usata sia in progetti desktop che web.

Mattepuffo Leggere feed RSS in Asp.NET con XmlDataSource


In un precedente articolo avevo parlato di come leggere in feed RSS usando Asp.NET e il C#.

Solo che ho notato che in alcuni casi quel metodo crea problemi e visto che non sono riuscito a risolvere ho usato un secondo metodo che adesso vi posto.

In questo caso non avremo bisogno del code-behind, ma solo di controlli server e tutto sarà fatto nella pagina Asp.NET.

Nello specifico useremo un XmlDataSource che prenderà i dati da una pagina web.

Questo XmlDataSource sarà il data-source di un altro controllo, un DataList.

Per andare a prendere i dati che ci servono useremo XPath.

Mattepuffo Leggere feed RSS in Asp.NET e C#


Necessità: mostrare i titoli degli utlimi articoli del mio blog (questo qua insomma) sul mio sito (MatteoFerrone.com).

Il sio è scritto in Asp.NET e C#, e oggi vi spiego come farlo.

Come al solito avremo bisogno di un pò di codice C# nel code-behind della pagina, e un pò di Asp.NET con i suoi controlli.

Cominciamo dalla prima parte:

public partial class Blog : System.Web.UI.Page
{
  protected string title;
  protected string desc;

  protected void Page_Load(object sender, EventArgs e)
  {
   DataSet ds = new DataSet("rss");
   ds.ReadXml("http://www.mattepuffo.com/site/index.php?format=feed&type=rss");
   title = ds.Tables["item"].Rows[0]["title"] as string;
   desc = ds.Tables["item"].Rows[0]["description"] as string;
   rss.DataSource = ds.Tables["item"];
   rss.DataBind();
  }
}

Le variabili protected (e non private perchè sennò non sarebbero raggiungibili sulla pagina) rappresentano i dati che vogliamo vedere: il titolo e la descrizione.

Sotto nel caricamento della pagina creiamo un DataSet dove immagazzinare i dati.