Uncategorized

Space Shuttle italiano? Quasi

Con la solita, inutile, enfasi giornalistica, ieri i mezzi di informazione parlavano della ‘Versione Italiana dello Space Shuttle’.

Come tutte le persone un minimo informate avranno capito, si tratta di una enorme esagerazione. Per chiarirmi un po’ e idee sono andato a
documentarmi per vedere cosa fosse in effetti successo di importante nel mondo della scienza italiana.

USV del CIRA in preparazione al lancio del pallone effetti tutta la notizia nasce dal primo test di volo di un apparecchio spaziale senza pilota sviluppato dal CIRA di cui potete leggere altre informazioni a questo link. C’e anche un
interessante articolo che racconta la cronaca in maniera abbastanza puntuale a questa pagina di un quotidiano locale.
Altre informazioni ancora si possono trovare in questa news della rivista Newton.

In estrema sintesi, il veicolo in questione è un mezzo spaziale dedicato alla ricerca che è in grado di volare senza pilota, grazie a un sistema di
guida elettronico automatico. In questa prima fase di testo, il velivolo è stato sganciato da un pallone sonda in quota e ha
percorso la traiettoria di discesa a velocità transonica manovrando in maniera autonoma fino ad ammarare in maniera controllato un poco al largo.

Ancora una volta i giornali si sono lasciati andare a facili sensazionalismi, descrivendo la notizia in maniera
approssimativa ed esagerata, rimane comunque che questo esperimento segna una tappa importante nel cammino scientifico italiano e non solo. Dispiace
vedere che la notizia, dopo essere stata ingrossata e ‘bruciata’ sia stata
rapidamente dimenticata, a favore di notizie sportive o di cronaca nera,
evidentemente ben più importanti del progresso e del prestigio scientifico Nazionale

Standard
Uncategorized

Repeater nidificati

Se lavorate con siti in ASP.net avrete senza dubbio verificato la potenzialità del controllo repeater che, collegato a una fonte dati, può automaticamente creare un elenco a partire dai singoli record con un minimo sforzo di programmazione. Una caratteristica di questo controllo molto utile è quella di poter essere nidificato, ovvero di permettere la ripetizione di record da tabelle collegate.

Nei
database relazionali naturalmente è comune avere tabelle collegate, in cui tipicamente il record di una tabella (per esempio ogni record di una ipotetica tabella ‘Clienti’) è collegato a molti record di un’altra tabella (‘Ordini’ seguendo l’esempio precedete). Dopo aver creato questa tabella e questo
collegamento, il passo successivo è ricreare questa situazione in una pagina web.

Replicare questo
comportamento con due Reperater nidificati è una cosa piuttosto semplice anche se, per un motivo poco chiaro, la documentazione su internet è
decisamente scarsa. Dopo aver cercato a lungo ho finalmente trovato un articolo molto interessante sul sito della Microsoft, in particolare in questo articolo della KB. In questa entry del blog voglio fare un breve
riassunto degli argomenti trattati nell’articolo secondo l’esperienza che ho fatto creato la pagina delle citazioni di questo sito.

Per prima cosa è necessario creare un oggetto DataSet che conterrà due DataTable, le due tabelle che vogliamo collegare e che rappresentano il  Repeater esterno e quello nidificato. La preparazione della sorgente dai si completa aggiungendo una Relation al DataSet che colleghi i campi corrispondenti delle due tabelle.
Passiamo ora alla preparazione della pagina. Il primo Repeater va aggiunto come da procedura usuale, nel codice della pagina si imposta la sua sorgente dati come una delle tabelle nel DataSet e si avvia il Binding.
Ecco il ‘trucco’, ora. Il secondo controllo Repeater, che normalmente si troverà all’interno di uno degli itemTemplate del primo, va impostato in modo da riceverà la sorgente dati direttamente nella pagina web e non nel codice, in questo modo può essere impostato in maniera ‘dinamica’ a ogni record del Repeater esterno.
La definizione del Repeater nidificato avrà una forma simile a questa:


<asp:repeater id="rptChild" runat="server" DataSource='<%#CType(Container.DataItem, DataRowView).Row.GetChildRows(<i>Nome-dell'oggetto-Relation</i>)%>' >

Ora, all’interno del Repeater
nidificato, i campi possono essere indicati come al solito con la direttiva Eval, salvo per un piccolo dettaglio: i nomi dei campi devo essere racchiusi tra virgolette doppie e tra
parentesi quadre, quindi la sintassi diventa:

 <%#Eval("[""<i>Nome-del-campo</i>""]")%>

Ancora una volta il controllo Repeater dimostra la sua potenza e flessibilità grazie
applicando una tecnica di programmazione un poco più raffinata.

Standard