tag:blogger.com,1999:blog-61411080639813669812024-03-13T07:03:43.678+01:00Sign InDecide for yourselfPierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.comBlogger311120tag:blogger.com,1999:blog-6141108063981366981.post-62015743020592795332009-04-28T11:07:00.011+02:002009-04-28T11:24:00.526+02:00Microsoft presenta Vine<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkUOnvmKgVQ24eFmgvxIILphEb83sQ0UzCOxvQkHNyrTMjXlHqWee_8KdsKrx-ziWKQgW6Hfet80TUuCrnOEwlxrvpzhAH5WE2tNJPK4c5u7TABVaYg_ZLd8E33mcpCHVCxoBZCTWzKFI/s1600-h/vine.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 279px; height: 79px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkUOnvmKgVQ24eFmgvxIILphEb83sQ0UzCOxvQkHNyrTMjXlHqWee_8KdsKrx-ziWKQgW6Hfet80TUuCrnOEwlxrvpzhAH5WE2tNJPK4c5u7TABVaYg_ZLd8E33mcpCHVCxoBZCTWzKFI/s320/vine.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5329670007909723698" /></a><br /><p align="justify">Presentato oggi un nuovo ambiente: <a href="http://www.vine.net/default.aspx">Vine</a> (in beta) che si pone l'obiettivo di tenere in contatto amici/familiari, collocate su un preciso territorio, durante le emergenze (uragani ecc...ma non solo).<br />Raccoglie informazioni locali e nazionali (USA) da circa 20000 fonti oltre ad annunci diramati da parte del <em>United States National Ocenaic and Atmospheric Administration</em> (<em>NOAA</em>).<br />Per maggiori informazioni e screenshot vi rimando ai seguenti due articoli:<br /><a href="http://www.techcrunch.com/2009/04/27/microsoft-vine-to-connect-family-friends-when-crisis-hits/">Microsoft Vine To Connect Family, Friends When Crisis Hits</a><br /><a href="http://socialblog.yurait.com/index/?p=2295">Microsoft Vine: connessioni di emergenza. Ma non solo.</a></p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com1tag:blogger.com,1999:blog-6141108063981366981.post-79105620840907510642009-04-26T19:30:00.000+02:002009-04-26T19:30:01.933+02:00Link .Net #20<p>Siamo giunti al  ventesimo appuntamento con la rubrica <strong><em>Link.Net</em></strong>: <br /> <br /><a href="http://aspnet.html.it/guide/leggi/161/guida-blogenginenet/" target="_blank">Guida BlogEngine.NET</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Un’ottima guida sul sito <strong><em>Html.it</em></strong> di <em>Andrea Dottor</em>, su <a href="http://www.dotnetblogengine.net/" target="_blank">BlogEngine.NET</a>; piattaforma open source di blogging sviluppata in <strong><em>Asp.Net 2.0</em></strong>. <br />Per chi fosse interessato ad altre applicazioni open source del mondo .Net consiglio: <br /><a href="http://addshare.blogspot.com/2009/03/link-net-17.html" target="_blank">Link .Net#17</a> <br /><a href="http://addshare.blogspot.com/2009/01/progetti-aspnet-open-source.html" target="_blank">Progetti Asp.Net Open Source</a></td> <td valign="middle" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhNYI-xYI/AAAAAAAABAY/78XZXwlGidc/s1600-h/it%5B2%5D.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhNzFMyfI/AAAAAAAABAc/NZ2ggwv8JUg/it_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://www.codeproject.com/KB/mobile/wami.aspx" target="_blank">Where Am I?</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Curioso articolo di <em>S. Senthil Kumar</em>. Attraverso la registrazione ad intervalli di informazioni sulle celle del vostro cellulare/palmare, non dotato di <em>GPS</em> è in grado di dirvi dove siete e di inviare anche un <em>SMS</em> con la vostra posizione.</td> <td valign="middle" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhOPZHfmI/AAAAAAAABAg/dxU--2d0W2M/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhOZy-8SI/AAAAAAAABAk/c6DIMZhNyLg/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://admeline.com/Default.aspx?module=Article&item=70" target="_blank">Drag and Drop with Persistence using JQuery</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Come poter integrare una feature di <em>drang and drop</em> persistendo sul db le informazioni con l’uso di <a href="http://jquery.com/" target="_blank">jQuery</a> o <strong><em>Asp.Net Ajax</em></strong>.</td> <td valign="middle" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhOPZHfmI/AAAAAAAABAg/dxU--2d0W2M/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SfQhOZy-8SI/AAAAAAAABAk/c6DIMZhNyLg/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/italy/archive/2009/04/21/deep-zoom-composer-disponibile-una-nuova-versione-del-tool-che-abilit-la-pubblicazione-sul-nuovo-servizio-deepzoompix.aspx" target="_blank">Deep Zoom Composer: disponibile una nuova versione del tool che abilità la pubblicazione sul nuovo servizio DeepZoomPix</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Nuovi aggiornamenti sulla versione di <strong><em>Deep Zoom Composer</em></strong>, che presenta l’evoluzione di <strong><em>PhotoZoom</em></strong> in <strong><em>DeepZoomPix</em></strong>.</td> <td valign="middle" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SfQhO9QLxAI/AAAAAAAABAo/eDW0FWB699w/s1600-h/it%5B5%5D.png" target="_blank"><img title="it" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="11" alt="it" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SfQhPIiMY4I/AAAAAAAABAs/fQuWfyz5Yhs/it_thumb%5B1%5D.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com1tag:blogger.com,1999:blog-6141108063981366981.post-41354678943613717572009-04-21T22:09:00.003+02:002009-04-21T22:12:22.359+02:00Macro vs Visual Source Safe<p align="justify">Recentemente ho avuto la “necessità” di creare una macro in <em>Visual Studio</em> che eseguisse delle operazioni di <em><strong>Replace</strong> </em>in diversi file del progetto. <br />Come in genere accade in questi casi è sufficiente registrare la macro tramite: <br /><strong><em>Tools</em></strong> > <strong><em>Macros</em></strong> > <strong><em>Record TemporaryMacro</em></strong> <br />ed il gioco è fatto.</p> <p align="justify">Anche se può sembrare assurdo, lanciando la macro non ottenevo il risultato sperato, bensì la seguente eccezione: <br />"<em>The server threw an exception. (Exception from HRESULT: 0X80010105 (RPS_E_SERVERFAULT))</em>" <br /></p> <p><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/Se4n_h-du7I/AAAAAAAABAQ/z2tYhVKvbGY/s1600-h/ErrorMacro%5B4%5D.jpg" target="_blank"><img title="ErrorMacro" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="87" alt="ErrorMacro" src="http://lh5.ggpht.com/_yWfUiX0hEgE/Se4oANoWsnI/AAAAAAAABAU/uo_B8-AZbNg/ErrorMacro_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a> </p> <p align="justify">A dir la verità ho subito pensato ad un bug nella macro - tale eventualità non è stata esclusa immediatamente anche se in realtà non avevo scritto neanche una riga di codice - o addirittura nell'IDE. <br />Il problema è causato, come mi è stato fatto notare da un mio collega, dalla mancata gestione in automatico del <strong><em>check out</em></strong> (il progetto è gestito tramite <a href="http://msdn.microsoft.com/it-it/library/3h0544kx(VS.80).aspx" target="_blank">Visual SourceSafe</a>) del file da modificare. <br />Sostanzialmente se i file sono preventivamente messi in <em>check out</em> allora la macro fa il suo lavoro - giustamente -. <br />A questo punto, è diventata una questione di principio, riuscire a risolvere il problema, nonostante la scarsa utilità della macro. <br />Nello caso specifico ho convertito, per semplicità, il tutto in tre macro distinte:</p> <ol> <li>eseguire una ricerca nei file del progetto tramite <strong><em>regular expression</em></strong>; </li> <li>eseguire il <em>check out</em> dei file in base ai risultati mostrati nella finestra <strong><em>Find Results 1</em></strong>, prodotti dal punto 1; </li> <li>eseguire la funzione di <strong><em>Replace</em></strong> per ogni file in <em>check out</em>. </li> </ol> <p align="justify">Forse la cosa più interessante da mostrare è il codice che ho scritto per svolgere il secondo punto: <br /></p> <div> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> DTE.Windows.Item(Constants.vsWindowKindFindResults1).Activate()</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">Dim</span> resultsWin <span style="color: #0000ff">As</span> Window = DTE.Windows.Item(Constants.vsWindowKindFindResults1)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff">Dim</span> sel <span style="color: #0000ff">As</span> TextSelection = resultsWin.Selection</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">If</span> <span style="color: #0000ff">Not</span> sel <span style="color: #0000ff">Is</span> <span style="color: #0000ff">Nothing</span> <span style="color: #0000ff">Then</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> sel.EndOfDocument(<span style="color: #0000ff">True</span>)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff">Dim</span> countLine = sel.CurrentLine</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> sel.StartOfDocument()</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> <span style="color: #0000ff">Dim</span> lineStr <span style="color: #0000ff">As</span> <span style="color: #0000ff">String</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> <span style="color: #0000ff">While</span> (sel.CurrentLine < countLine)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> sel.StartOfLine(<span style="color: #0000ff">False</span>)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> sel.EndOfLine(<span style="color: #0000ff">True</span>)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> lineStr = sel.Text</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> <span style="color: #0000ff">Dim</span> reg <span style="color: #0000ff">As</span> Regex = <span style="color: #0000ff">New</span> Regex(<span style="color: #006080">"c:.*(?=\(\d)"</span>, RegexOptions.IgnoreCase)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> <span style="color: #0000ff">Dim</span> line <span style="color: #0000ff">As</span> <span style="color: #0000ff">String</span> = reg.Match(lineStr).Value</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> <span style="color: #0000ff">If</span> line.Length > 0 <span style="color: #0000ff">And</span> DTE.SourceControl.IsItemCheckedOut(line) = <span style="color: #0000ff">False</span> <span style="color: #0000ff">Then</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> DTE.SourceControl.CheckOutItem(line)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> sel.LineDown(<span style="color: #0000ff">True</span>)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> <span style="color: #0000ff">End</span> <span style="color: #0000ff">While</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> <span style="color: #0000ff">Dim</span> win <span style="color: #0000ff">As</span> Window = DTE.Windows.Item(Constants.vsWindowKindOutput)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> <span style="color: #0000ff">Dim</span> ow <span style="color: #0000ff">As</span> OutputWindow = win.<span style="color: #0000ff">Object</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> ow.ActivePane.Activate()</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 24:</span> ow.ActivePane.OutputString(<span style="color: #006080">"Completo!!!"</span>)</font></font></pre><br /></div></div><p align="justify">Anche se il codice parla abbastanza da solo, alcune righe meritano di essere un minimo commentate.<br />In particolare le prime tre righe consentono di poter analizzare il testo presente nella finestra dei risultati: <strong><em>Find Results 1</em></strong> frutto della ricerca precedentemente eseguita.<br />Dopo aver calcolato il numero di righe presenti (riga 5 e 6) eseguo un ciclo estrapolando per ognuna l'eventuale path tramite una <em>regular expression</em> costruita ad hoc per il mio caso(riga 13). <br />In caso di <em>match</em> eseguo il <em>check out</em> del file richiamando il metodo <strong><em>CheckOutItem</em></strong> (riga 16).<br />Per concludere nella finestra di <strong><em>Output</em></strong> mostro un messaggio di fine operazione (riga 21, 22, 23, 24).</p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-9891384213055723752009-04-13T19:35:00.000+02:002009-04-13T19:35:01.613+02:00Link .Net #19<p align="justify">Nuovo appuntamento, nuovi link: <br /> <br /><a href="http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx" target="_blank">ASP.NET MVC BEST PRACTICES (PART 1)</a> <br /><a href="http://weblogs.asp.net/rashid/archive/2009/04/03/asp-net-mvc-best-practices-part-2.aspx" target="_blank">ASP.NET MVC BEST PRACTICES (PART 2)</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Una serie di <em>best practices</em> per <strong><em>Asp.Net MVC</em></strong>, che coprono tutta una serie di casistiche come per esempio, l’uso della <em>cache</em>, dell’<em>Action Filter</em>, l’uso di <em>jQuery</em> e tanto altro.</td> <td valign="middle" width="16"><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SeNAnP3xzGI/AAAAAAAABAA/m2zXwkpmkMc/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SeNAnb3rgGI/AAAAAAAABAE/s1n3KgHp-F4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/pietrobr/archive/2009/04/08/entity-framework-ottimizzare-le-performance.aspx" target="_blank">Entity Framework ottimizzare le performance</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Personalmente non ho avuto modo di fare molti esperimenti con <a href="http://msdn.microsoft.com/it-it/magazine/cc700331.aspx" target="_blank">Entity Framework</a>, eccezione fatta per la visione di qualche <em>screencast</em> e <em>webcast</em>. Consiglio l’articolo per poter raccogliere una serie di punti interessanti su come migliorare le performance di questo nuovo modello di dati.</td> <td valign="middle" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SeNAn6oBQwI/AAAAAAAABAI/dcvp4eZtx2k/s1600-h/it%5B2%5D.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SeNAoFKgVcI/AAAAAAAABAM/JVBBv-RtSPg/it_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.ugidotnet.org/corrado/archive/2009/04/11/blend3-behaviors.aspx" target="_blank">Blend3 Behaviors</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484"><em>Corrado Cavalli</em> ci presenta i <strong><em>behaviors</em></strong> nella nuova versione di <a href="http://www.microsoft.com/expression/try-it/blendpreview.aspx" target="_blank">Blend</a>.</td> <td valign="middle" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SeNAn6oBQwI/AAAAAAAABAI/dcvp4eZtx2k/s1600-h/it%5B2%5D.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SeNAoFKgVcI/AAAAAAAABAM/JVBBv-RtSPg/it_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-66264340773104159472009-04-08T10:05:00.000+02:002009-04-08T10:05:00.832+02:00Plugin Silverlight per WordPress<p align="justify"><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SdulZS3gYWI/AAAAAAAAA_4/c9QCvya7Yos/s1600-h/WordPressSilverlight%5B6%5D.jpg" target="_blank"><img title="WordPressSilverlight" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="80" alt="WordPressSilverlight" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SdulZ7t3JNI/AAAAAAAAA_8/68ljAI-4xEU/WordPressSilverlight_thumb%5B4%5D.jpg?imgmax=800" width="200" border="0" /></a> <br />Da qualche giorno è stato rilasciato da <a href="http://wordpress.org/extend/plugins/silverlight-for-wordpress/" target="_blank">Tim Heuer</a> un nuovo <em>plugin</em> per <a href="http://wordpress.org/" target="_blank">Wordpress</a> che consente di inserire facilmente all’interno di post, applicazioni/contenuto <a href="http://silverlight.net/" target="_blank">Silverlight</a>. <br />L’installazione sembra essere abbastanza semplice. <br />Attraverso una serie di parametri è possibile definire dimensione, versione, e url del file <strong><em>.XAP</em></strong>, quest’ultimo come si può intuire, unico parametro obbligatorio. <br />Fonte: <a href="http://on10.net/" target="_blank">Channel 10</a></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-35552539001690368502009-04-07T11:39:00.021+02:002009-04-07T16:00:00.832+02:00.Net tra gladiatori<p align="justify">Segnalo molto volentieri un nuovo <strong>User Group</strong> dedicato al mondo <em>.Net</em>, tutto romano, come si può facilmente cogliere dal nome:<br /><a href="http://www.dotnetromacesta.org/" target="_blank">DotNetromaCesta</a><br /><br /><strong>"</strong><em>DotnetRomaCestà il primo User Group di Roma dedicato alla tecnologia Microsoft .Net. Lo scopo di quest'associazione è quella di creare un punto di riferimento per la città di Roma e per tutti gli appassionati ed utilizzatori di questa tecnologia, un modo per confrontarsi e scambiarsi le proprie esperienze. L'User Group nato dalla passione di persone, ha il compito di fornire materiale formativo, quali articoli e trucchi nonché notizie e di promuovere una serie di attività culturali e formativi volte ad accrescere la conoscenza di questa materia. Gli eventi, che intende svolgere il gruppo, far si che quest'associazione non è solo virtuale ma anche reale, permettendo in questo modo un contatto diretto con tutti i partecipanti della comunità e non.</em><strong>"</strong><br /><br />Fanno sempre piacere iniziative di questo tipo, quindi non mi resta che fare ad <a href="http://blog.shareoffice.it/emanuele/" target="_blank">Emanuele Mattei</a> e staff un grande in bocca al lupo.</p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-6791099200208338702009-04-05T21:24:00.006+02:002009-04-05T21:31:04.493+02:00Pdf in Deep Zoom<p align="justify">Questo post, come molti altri del mio blog, nasce da una domanda sorta all’interno dell’ufficio. Nella fattispecie la domanda riguarda la possibilità di proteggere alcuni documenti in formato <em>pdf</em> da eventuali modifiche, stampa, copie ecc e consentire all’utente solo la visualizzazione di quest’ultimi all’interno di un’applicazione web. <br />Ebbene a parte l’impossibilità di una cosa del genere nel senso che, se il documento deve giungere alla macchina dell’utente per essere letto, allora è possibile eseguire qualsiasi operazione compreso eliminare protezioni e quindi modificarlo, tra le diverse idee che ho cercato di far “passare” c’è quella di convertire il/i <em>pdf</em> in immagini (una per pagina) per poi darle in pasto ad un “componente” per la visualizzazione <em>Flash</em> o per rimanere in ambito Microsoft: <a href="http://silverlight.net/default.aspx" target="_blank">Silverlight</a>. <br />Certo anche in questo modo un utente potrebbe sempre eseguire dei <em>print screen</em> (quindi poterlo stampare facilmente) e con un semplice software di <a href="http://it.wikipedia.org/wiki/Optical_Character_Recognition" target="_blank">OCR</a> convertire il testo in caratteri <em>ASCII</em>. <br />Oltre all’<em>OCR</em>, per la modifica… le vie dei programmi di fotoritocco sono infinite. <br />Ovviamente come avrete capito non c’è una procedura che assicuri un’assoluta protezione in questo preciso scenario, ma si può solo rendere più o meno complessa l’operazione di “recupero”. <br />Ma ritorniamo all’idea. Per raggiungere lo scopo i passi da seguire sono essenzialmente due: <br />1) trasformare il documento p<em>df</em> in immagine (<em>jpg</em>, <em>bmp</em>, ecc). <br />2) creare un progetto con <a href="http://www.microsoft.com/downloads/details.aspx?familyid=457b17b7-52bf-4bda-87a3-fa8a4673f8bf&displaylang=en" target="_blank">Deep Zoom Composer</a> <br />Il primo passo si può compiere in innumerevoli modi, per esempio scaricando uno dei tanti programmi (basta eseguire una semplice ricerca con <a href="http://lmgtfy.com/?q=convert+pdf+to+image" target="_blank">Google</a>) che consentono di convertire <em>pdf</em> in altri formati. <br />Oppure se si preferisce esistono anche servizi web che svolgono tale compito, giusto per citarne uno (<em>NB</em>: non ho fatto prove in merito): <br /><a href="http://www.youconvertit.com/ConvertFiles.aspx" target="_blank">youconvertit</a> <br /><a href="http://lqe04w.bay.livefilestore.com/y1pHjwwfXEc9xmz7R33Xze-ibVkhPNmrq_KguKVv6tSl1yBt87C33vhlLy5xdDOlOd0FfknAYiGeDC6qmHSwAEFLsgaPNZS6wxG/youconvertit1.jpg" target="_blank"><img title="youconvertit" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="250" alt="youconvertit" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SdkFXxgPrBI/AAAAAAAAA_Y/nh56V2jqvXg/youconvertit%5B5%5D.jpg?imgmax=800" width="400" border="0" /></a>  <br />Personalmente ho seguito un’altra strada, cioè: <br />1) ho convertito il file <em>pdf</em> in formato <a href="http://en.wikipedia.org/wiki/XML_Paper_Specification" target="_blank">Xps</a> utilizzando i driver di stampa <strong><em>Microsoft XPS Document Writer</em></strong>. Su sistemi <em>Windows Vista</em> non è necessario installare nulla mentre per chi possiede <em>Windows XP</em> o <em>Windows Server 2003</em> è necessario il <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=10cc340b-f857-4a14-83f5-25634c3bf043&displaylang=it" target="_blank">Framework 3.0</a> e <a href="http://www.microsoft.com/whdc/xps/viewxps.mspx" target="_blank">Microsoft XPS Essentials Pack</a>. <br />A questo punto per generare il documento <em>Xps</em> è sufficiente attivare la finestra di stampa e selezionare la stampante virtuale <b>Microsoft XPS Document Writer</b> e cliccare su stampa. <br />2) Convertire a sua volta, il documento <em>Xps,</em> in <em>n</em> immagini, una per ogni pagina. Per tale compito ho pensato di creare un semplice “programmino” <strong><em>WPF</em></strong> composto dalle seguenti righe di codice: <br /></p> <div> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> XpsDocument xpsDocument = <span style="color: #0000ff">new</span> XpsDocument( <span style="color: #006080">@"path xps"</span>, System.IO.FileAccess.Read);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> FixedDocumentSequence documentSeq = xpsDocument.GetFixedDocumentSequence();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff">int</span> pageCount = documentSeq.DocumentPaginator.PageCount;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">for</span> (<span style="color: #0000ff">int</span> i = 0; i < pageCount; i++)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> DocumentPage docPage = documentSeq.DocumentPaginator.GetPage(i);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> RenderTargetBitmap render = <span style="color: #0000ff">new</span> RenderTargetBitmap((<span style="color: #0000ff">int</span>)docPage.Size.Width,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> (<span style="color: #0000ff">int</span>)docPage.Size.Height, 96, 96, PixelFormats.Default);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> render.Render(docPage.Visual);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> FileStream stream = <span style="color: #0000ff">new</span> FileStream( <span style="color: #006080">@"path"</span> + i.ToString() + <span style="color: #006080">".jpg"</span>,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> FileMode.Create);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> JpegBitmapEncoder encoder = <span style="color: #0000ff">new</span> JpegBitmapEncoder();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> encoder.Frames.Add(BitmapFrame.Create(render));</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> encoder.Save(stream);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> }</font></font></pre></div></div><br /><p align="justify"><br />Per poter compilare il codice bisogna aggiungere all’applicazione <strong><em>WPF</em></strong> la <em>reference</em> all’<em>assembly</em> <strong><em>ReachFramework</em></strong>: <br /><br /><br /><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SdkFZCIvoqI/AAAAAAAAA_c/kxophhq9Jo0/s1600-h/ReachFramework%5B4%5D.jpg" target="_blank"><img title="ReachFramework" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="322" alt="ReachFramework" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SdkFZ7ugndI/AAAAAAAAA_g/oUjvp8AMsxQ/ReachFramework_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a> </p><br /><p>ed inoltre aggiungere la direttiva: <br /></p><div><br /><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">using</span> System.Windows.Xps.Packaging;</font></font></pre></div></div><br /><p align="justify">Il codice come già accennato in precedenza non fa altro che prendere il documento <em>Xps</em>, ciclare sulle pagine che lo compongono, e per ognuna di questa generare un file immagine con estensione .<em>jpg</em>. <br />A questo punto ci possiamo dedicare al secondo passo del tutorial, cioè quello di creare un progetto con <strong><em>Deep Zoom Composer</em></strong>.<br />Dopo aver installato il programma possiamo creare un nuovo progetto:<br /><br /><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SdkFakHPi4I/AAAAAAAAA_k/wKEjYL9AZvQ/s1600-h/PDFDeep%5B4%5D.jpg" target="_blank"><img title="PDFDeep" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="262" alt="PDFDeep" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SdkFbrnT95I/AAAAAAAAA_o/RF7sy2K7_4U/PDFDeep_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a> </p><br /><p align="justify">Tramite l’apposito pulsante <em><strong>AddImage</strong></em> inseriamo le immagini generate in precedenza:<br /><br /><a href="http://lqe04w.bay.livefilestore.com/y1pnxdhyezyxmaVd-W8gZaSmYZwJNsvGsWKa2aBhrgGL1Rj_Gn_g9CYlDRK4PzRvXNAzO7VZjbsI2jng1fZ3m3MRatvrWmvyDNi/PDFDeep1Big.jpg" target="_blank"><img title="PDFDeep1" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="264" alt="PDFDeep1" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SdkFcPZvbPI/AAAAAAAAA_s/424gZkoQX3c/PDFDeep1%5B5%5D.jpg?imgmax=800" width="400" border="0" /></a> </p><p align="justify">Al termine dell’importazione si può iniziare a disporre come meglio preferiamo le immagini.<br />Tramite il pulsante <strong><em>Export</em></strong> possiamo pubblicare il lavoro indicando il tipo di <em>output</em> (<em>Images</em>, <em>Silverlight Deep Zoom</em>, <a href="http://addshare.blogspot.com/2008/11/seadragon-ajax.html" target="_blank">Seadragon Ajax</a>), un nome e il percorso in cui eseguire il salvataggio: <br /><br /><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SdkFc6XvOEI/AAAAAAAAA_w/n_CKjst_cEE/s1600-h/PDFDeep2%5B4%5D.jpg" target="_blank"><img title="PDFDeep2" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="264" alt="PDFDeep2" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SdkFdnhou3I/AAAAAAAAA_0/oo9tfGNXhMc/PDFDeep2_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a>  <br />Per questo tutorial ho scelto come tipologia <strong><em>Silverlight Deep Zoom</em></strong>. <br />Con l’esportazione viene generata una cartella <em>Name</em> + <strong><em>ProjectWeb</em></strong> con tutto il necessario alla pubblicazione.<br /><br /><em>PS</em>: le immagini che si possono notare in <em>Deep Zoom</em> sono tratte dal catalogo <em>Francorosso</em> su Cina e Giappone.</p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-65467034835050559642009-03-30T21:48:00.001+02:002009-03-30T21:48:20.581+02:00Link .Net #18<p>Eccoci nuovamente con un nuovo appuntamento della rubrica <strong><em>Link .Net</em></strong>:</p> <br /><a href="http://blogs.msdn.com/designexperience/archive/2009/03/20/mix-09-silverlight-3-beta-expression-blend-3-preview-e-internet-explorer-8.aspx" target="_blank">MIX'09: Silverlight 3 Beta, Expression Blend 3 Preview e Internet Explorer 8</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Una completa overview degli annunci più importanti fatti in occasione del <strong><em>Mix ‘09</em></strong> per quanto riguarda <a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank">Silverlight 3</a> (attualmente in beta) e la preview della nuova versione di <a href="http://www.microsoft.com/expression/try-it/blendpreview.aspx" target="_blank">Expression Blend 3</a>.</td> <td valign="middle" width="16"><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh8tCSETI/AAAAAAAAA-4/VyVKVofoKNw/s1600-h/it4.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh9ZfLGYI/AAAAAAAAA-8/260LGPdSgbo/it_thumb2.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://aspnet.html.it/articoli/leggi/3012/utilizzare-editor-javascript-con-aspnet-tinymce/1/" target="_blank">Utilizzare editor JavaScript con ASP.NET: TinyMCE</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Su <a href="http://www.html.it/" target="_blank">HTML.it</a>, un’interessante articolo di <em>Marco Minerva</em> su come utilizzare, nei propri siti in <strong><em>Asp.Net</em></strong>, l’editor <a href="http://tinymce.moxiecode.com/download.php" target="_blank">TinyMCE</a>.</td> <td valign="middle" width="16"><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh8tCSETI/AAAAAAAAA-4/VyVKVofoKNw/s1600-h/it4.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh9ZfLGYI/AAAAAAAAA-8/260LGPdSgbo/it_thumb2.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://www.dev102.com/2009/03/23/creating-an-ajax-login-form-with-jquery/" target="_blank">Creating an Ajax Login Form With jQuery</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Tutorial su come creare un login sfruttando <a href="http://jquery.com/" target="_blank">jQuery</a> in un’applicazione <a href="http://www.asp.net/mvc/" target="_blank">Asp.Net MVC</a>.</td> <td valign="middle" width="16"><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh9ivKgsI/AAAAAAAAA_A/0bYr3vTKD7w/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SdEh-H_7_vI/AAAAAAAAA_E/tYZ2sGbjCb0/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/waldred/archive/2009/03/23/Search-Engine-Optimization-for-Silverlight-Applications.aspx" target="_blank">Search Engine Optimization for Silverlight Applications</a> <br /><a href="http://blogs.msdn.com/waldred/archive/2009/03/24/search-engine-optimization-for-silverlight-applications-part-2.aspx" target="_blank">Search Engine Optimization for Silverlight Applications – Part 2</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Interessante articolo sull’utilizzo dei <a href="http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx" target="_blank">.NET RIA Services</a> per implementare una strategia <a href="http://it.wikipedia.org/wiki/Ottimizzazione_(motori_di_ricerca)" target="_blank">SEO</a>.</td> <td valign="middle" width="16"><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh-lNuZ2I/AAAAAAAAA_I/ex37VfP7oAs/s1600-h/en5.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEh_fbjdpI/AAAAAAAAA_M/vKoWuRluHRE/en_thumb1.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://www.codeproject.com/KB/smart/Perceptor.aspx" target="_blank">Perceptor: An artificially intelligent guided navigation system for WPF</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484"><em>Daniel Vaughan</em> ha pubblicato su <a href="http://www.codeproject.com" target="_blank">CodeProject</a> un’articolo (con codice sorgente) <br />su un sistema di navigazione guidata per <a href="http://msdn.microsoft.com/en-us/netframework/aa663326.aspx" target="_blank">WPF</a>. <br />Ebbene il sistema in base all’esperienza scaturita dall’osservazione delle precedenti navigazioni dell’utente, suggerisce un grafo navigazionale. <br />Consigliatissimo!!!</td> <td valign="middle" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SdEiADcZfSI/AAAAAAAAA_Q/LLNISwqMPY8/s1600-h/en8.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SdEiAtR2h4I/AAAAAAAAA_U/RZnkMro0IBU/en_thumb2.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-33433590303241059072009-03-29T14:19:00.001+02:002009-03-29T14:19:03.819+02:00DeepZoom al servizio delle conigliette<p><a href="http://playboy.covertocover.com/" target="_blank"><img title="playboy" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="300" alt="playboy" src="http://lh4.ggpht.com/_yWfUiX0hEgE/Sc9nNyJNgJI/AAAAAAAAA-0/sxyaqaUse0Y/playboy6.jpg?imgmax=800" width="212" border="0" /></a></p> <br /> <p>Fonte: <a href="http://www.geniodelmale.info/" target="_blank">Blog: Genio del Male</a></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-83452649428284654212009-03-24T13:31:00.003+01:002009-03-24T13:38:13.040+01:00Mix'09: tutti i video<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKDFH19Ulr1m4q1Suaa8V_ezkTXOZPMwLqx0ipvnsAHlzVSog7CvSbiWKEDpmMTk8-YHAtBbGDYoAXyvgCfJCcy14yJM8plvxz0GChp94Y-siYTRNQCnDmiWfRSyJ2OcB1bAbDKidOqoc/s1600-h/MixVideos.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKDFH19Ulr1m4q1Suaa8V_ezkTXOZPMwLqx0ipvnsAHlzVSog7CvSbiWKEDpmMTk8-YHAtBbGDYoAXyvgCfJCcy14yJM8plvxz0GChp94Y-siYTRNQCnDmiWfRSyJ2OcB1bAbDKidOqoc/s400/MixVideos.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5316732201294762274" /></a><br /><br />Sono disponibili per il download tutte le sessioni degli interventi al Mix'09:<br /><a href="http://videos.visitmix.com/" target="_blank">Mix Videos</a>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-63707519044009662552009-03-18T20:14:00.001+01:002009-03-18T20:14:40.506+01:00Expression Web SuperPreview<p align="justify">Dal <a href="http://live.visitmix.com/" target="_blank">MIX09</a> stanno uscendo una bordata di novità, partendo da <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d09b6ecf-9a45-4d99-b752-2a330a937bc4" target="_blank">Silverlight 3.0 Beta 1</a>, al quasi sicuro annuncio della <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b" target="_blank">RTM di Asp.Net MVC</a> (visto la possibilità di download dal sito Microsoft) e per “finire”… una nuova funzionalità per <em>Expression Web</em> estremamente utile per gli sviluppatori web: <strong><em>Expression Web SuperPreview</em></strong>. <br />Permette di semplificare notevolmente la vita degli sviluppatori web consentendo di verificare la compatibilità di visualizzazione delle pagine tra i diversi browser che tutti noi conosciamo: <br /><img height="391" src="http://www.istartedsomething.com/wp-content/uploads/2009/03/superpreview2.jpg" width="400" />  <br />Caratteristica sicuramente appetibile è la possibilità di sovraporre pagine renderizzate con <em>engine </em>diversi per poter notare a colpo d’occhio le differenze. <br />In più sono presenti tutta una serie di strumenti classici come <em>DOM</em> e <em>CSS inspector, </em>righelli<em>, </em>linee guida<em> </em>ecc<em>.</em> <br />La versione beta di questo software si può scaricare al seguente link: <br /><a href="http://download.microsoft.com/download/5/6/8/568F0D28-0434-4794-B7FC-FB293BCC98FB/SuperPreview_Trial_en.exe" target="_blank">versione trial</a> <br />Mentre per la versione definitiva si dovrà attendere il lancio di <strong><em>Expression Web 3</em></strong>. <br />Per maggiori informazioni vi rimando al seguente post: <br /><a href="http://www.istartedsomething.com/20090318/expression-web-superpreview-cross-browser-testing/" target="_blank">Expression Web SuperPreview makes cross-browser testing like moist delicious cake</a></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-28667601559612965102009-03-15T19:40:00.001+01:002009-03-15T19:40:16.092+01:00Link .Net #17<p align="justify">Due settimane ricche di interessanti articoli: <br /> <br /><a href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx" target="_blank">Free ASP.NET MVC eBook Tutorial</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">In attesa di acquistare il libro <a href="http://www.amazon.com/Professional-ASP-NET-MVC-1-0-Conery/dp/0470384611/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1237128469&sr=8-2" target="_blank">Professional ASP.NET MVC 1.0</a> (personalmente farò mio anche <a href="http://www.amazon.com/Beginning-ASP-NET-MVC-Simone-Chiaretta/dp/047043399X/ref=sr_1_11?ie=UTF8&s=books&qid=1237128522&sr=8-11" target="_blank">Beginning ASP.NET MVC 1.0</a>) è possibile scaricare il primo capitolo (di ben 185 pagine) in cui viene mostrata la costruzione di una applicazione completa (<strong><em>NerdDinner</em></strong>) tramite il Framework <strong><em>Asp.Net MVC</em></strong>. <br />Per poter scaricare il pdf e per maggiori informazioni vi rimando al post sul blog di <a href="http://weblogs.asp.net/scottgu" target="_blank">Scott Guthrie</a>.</td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blog.webdistortion.com/2009/03/06/12-open-source-projects-for-net-you-probably-didn’t-know-about/" target="_blank">12+ open source projects for .NET you probably didn’t know about.</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Tempo fa, <a href="http://addshare.blogspot.com/2009/01/progetti-aspnet-open-source.html" target="_blank">in questo blog</a>, segnalavo alcuni progetti <em>open source</em> scritti utilizzando il <strong><em>Framework .Net</em></strong>. Per chi è interessato nel post citato trovate altri interessanti progetti.</td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://geekswithblogs.net/HouseOfBilz/archive/2009/03/01/right-clicking-in-silverlight-2----a-refinement.aspx" target="_blank">Right-Clicking in Silverlight 2 -- A Refinement</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">In questo articolo viene mostrato come implementare la funzionalità del click con tasto destro in <strong><em>Silverlight 2 </em></strong>tramite l’uso di un metodo chiamato <strong><em>FindElementsInHostCoordinates.</em></strong></td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://weblogs.asp.net/wesleybakker/archive/2009/03/05/select-multiple-list-items-in-sharepoint-feature.aspx" target="_blank">Select Multiple List Items in SharePoint Feature</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Come implementare la selezione multipla per un <strong><em>ListView Web Part </em></strong>in <strong><em>Sharepoint.</em></strong></td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=282" target="_blank">Insert Windows Media to web pages in Microsoft Expression Web</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Un tutorial passo passo su come inserire <em>Windows Media</em> nelle proprie pagine web tramite <a href="http://www.microsoft.com/italy/products/expression/products/Overview.aspx?key=web" target="_blank">Microsoft Expression Web 2</a>.</td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://www.codeproject.com/KB/office/biffcsharp.aspx" target="_blank">Generate Excel files without using Microsoft Excel</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Far uso del formato <a href="http://en.wikipedia.org/wiki/Microsoft_Excel" target="_blank">Binary Interchange File Format</a> per generare un file <em>Excel</em> senza che <em>Microsoft Excel </em>sia installato.</td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/brunoterkaly/archive/2009/02.aspx" target="_blank">The Art of Debugging</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Ben tredici lezioni sull’arte del <strong><em>debugging</em></strong>.</td> <td valign="top" width="16"><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/Sb1LjAFCB5I/AAAAAAAAA-A/x3U6qfbPPGk/s1600-h/en%5B2%5D.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh3.ggpht.com/_yWfUiX0hEgE/Sb1Lj9KulUI/AAAAAAAAA-E/4Ynax2Zzzc4/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-37097551328766226162009-03-11T21:54:00.005+01:002009-03-11T21:58:22.542+01:00Ottimizzazione Js<p align="justify">L’ottimizzazione di una applicazione web passa anche dall’ottimizzazione dei singoli elementi <em>script</em> <strong><em>Js</em></strong> che la compongono. <br />Rimuovere spazi, commenti, righe vuote ecc può ridurre dal <strong><em>20%</em></strong> al <strong><em>30%</em></strong> la dimensione del nostro <em>script</em> con un bel risparmio per il browser che lo deve scaricare. <br />I modi per eseguire questo tipo di ottimizzazione sono diversi. <br />In <em>Visual Studio</em> non mi risulta ci sia un <em>tool</em> integrato, ma nulla ci vieta di aggiungerne uno specifico. Attraverso <em>External Tools</em> abbiamo accesso ad una serie di strumenti esterni che ci facilitano lo sviluppo/debug. Per esempio nella lista, di default, è disponibile <strong><em>Create Guid</em></strong> che consente di generare un identificatore <a href="http://it.wikipedia.org/wiki/GUID" target="_blank">GUID</a> in base ai criteri specificati. <br />A questi strumenti possiamo aggiungerne altri come per esempio <a href="http://www.moxieforge.net/overview.php?project_id=10&category_id=7" target="_blank">JsTrim</a>, un <em>compressor</em> <em>Js</em> a riga di comando. <br />Il componente permette essenzialmente due livelli di compressione. Il primo, <em><strong>basic</strong></em>, esegue un'eliminazione di tutto ciò che può essere superfluo, come accennavamo ad inzio post. Il secondo invece utilizza l'algoritmo di <a href="http://dean.edwards.name/weblog/2007/08/js-compression/" target="_blank">Dan Edvards</a> che permette di ottenere un’ottimizzazione con un risparmio di più del <strong><em>40%</em></strong>. Quest'ultimo però, è più lento nel caricamento rispetto al primo, per via della decompressione che il browser deve attuare. <br />I passi per aggiungere <strong><em>JsTrim</em></strong> alla lista degli strumenti: <br />cliccare su <strong><em>Tools</em></strong> > <strong><em>External Tools</p><br /><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SbglE_3_fQI/AAAAAAAAA90/ZeEy6qfP9XY/s1600-h/JsTrim%5B4%5D.jpg" target="_blank"><img title="JsTrim" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="390" alt="JsTrim" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SbglFVSgIyI/AAAAAAAAA94/uwwoQg7xKjc/JsTrim_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a></em></strong><p align="justify">Indicare 1) un titolo nell'apposito campo, 2) il path dell'eseguibile (per uniformità si può copiare il punto <em>exe</em> di <em>JsTrim</em> nella cartella <strong><em>...\Microsoft Visual Studio 8\Common7\Tools</em></strong>), 3) gli argomenti (per maggiori dettagli vi rimando alla <a href="http://www.moxieforge.net/documentation.php?project_id=10&category_id=7" target="_blank">documentazione</a>). <br />Per chi fosse interessato a <a href="http://developer.yahoo.com/yui/compressor/" target="_blank">YUI Compressor</a> segnalo il seguente post: <br /><a href="http://blog.krisvandermast.com/CompressingAndObfuscatingJavascriptAndCssFilesWithYUICompressorInVisualStudio.aspx" target="_blank">Compressing and obfuscating javascript and css files with YUICompressor in Visual Studio</a> <br />Per chi invece non utilizza <em>Visual Studio</em>, funzionalità di ottimizzazioni sono presenti in molti applicativi. Giusto per citarne uno: <a href="http://www.aptana.com/" target="_blank">Aptana</a> che avevo già segnalato tempo fa al seguente <a href="http://addshare.blogspot.com/2007/10/aptana.html" target="_blank">post</a>. <br />Esistono anche servizi web in cui è sufficiente indicare il file <em>js</em> da ottimizzare e il servizio fa il resto. <br />Per esempio in <a href="http://jsutility.pjoneil.net/?" target="_blank">Javascript Utility Web Site</a> è disponibile un <a href="http://jsutility.pjoneil.net/?" target="_blank">JavaScript Compactor</a> (il file deve essere maggiore di <em>1000 bytes)</em>. <br />Al completamento della procedura viene mostrata la percentuale di riduzione della dimensione del file. <br />Altro sito estremamente interessante è <a href="http://www.bananascript.com/" target="_blank">Bananascript</a> che, come il precedente, mostra tutta una serie di statistiche a fine processo ma come si può leggere dalle <strong><em>faq</em></strong>: <br /><em>"Besides the common removal of comments, tabs and spaces as seen in many other tools, this tool also performs "real" compression </em><em>on the files. The idea is simple, replace long recurring byte sequences by shorter ones." <br /></em>non si limita ad eliminare il superfluo ma esegue una compressione reale.<a href="http://lqe04w.bay.livefilestore.com/y1pyW8MIDKOOnBH63uXxeGp65bq1tQLZF2z0dbyL9jN2gTOZRWjrCmjEteWCBd8SdayowVmRDqV965GmUw26li7kA/bana" target="_blank"><img title="bananascript1" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="332" alt="bananascript1" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SbglGLuyfGI/AAAAAAAAA98/uQmC5xcwZPg/bananascript1%5B5%5D.jpg?imgmax=800" width="400" border="0" /></a></p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-89820695476762355432009-03-07T17:23:00.001+01:002009-03-07T17:23:05.136+01:00Creare degli Schematics<p align="justify">Ritengo l’uso degli <a href="http://it.wikipedia.org/wiki/Schematics" target="_blank">schematics</a> estremamente importante in quanto consentono di trasmettere informazioni in modo semplice ed immediato grazie all’uso di simboli grafici facilmente interpretabili dall’utente. <br />Nel campo della progettazione software ma non solo, ci sono tantissimi applicativi (free e non) che ci vengono incontro. <br />Sicuramente il più blasonato è <a href="http://office.microsoft.com/it-it/visio/FX100487861040.aspx" target="_blank">Office Visio</a> della <em>Microsoft</em> che dispone di un’ampia gamma di diagrammi. Ovviamente facendo parte del pachetto <em>Office</em> è possibile generare <a href="http://office.microsoft.com/it-it/visio/HA100141961040.aspx" target="_blank">diagrammi pivot</a> attingendo dati da <em>Excel</em>, <em>Project</em>, <em>Sharepoint</em> ecc. <br />Un’ottima alternativa a <em>Office Visio</em> può essere: <a href="http://www.smartdraw.com/exp/ste/examples/" target="_blank">SmartDraw</a>, altro prodotto commerciale. <br />Per chi invece vuole provare qualcosa di diverso dal solito consiglio l’uso di <a href="http://www.inkscape.org" target="_blank">Inkscape</a> (molto più simile ad <a href="http://www.adobe.com/it/products/illustrator/" target="_blank">Illustrator</a> che ai due precedentemente citati), volendo in accoppiata con <a href="http://www.graphviz.org/About.php" target="_blank">Graphviz</a>. <br />Entrambi <em>open source,</em> permettono di rappresentare le informazioni in <a href="http://it.wikipedia.org/wiki/Scalable_Vector_Graphics" target="_blank">SVG</a> o altri formati vettoriali:</p> <br /><a href="http://www.inkscape.org/screenshots/gallery/inkscape-0.43-diagrams.png" target="_blank"><img title="inkscape-0" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="250" alt="inkscape-0" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SbKfVKf2mGI/AAAAAAAAA9k/ErKyBVsgxEQ/inkscape-0%5B5%5D.jpg?imgmax=800" width="400" border="0" /></a> <p align="justify">Personalmente ho trovato estremamente utile l’uso di <a href="http://www.yworks.com/en/products_yed_about.html" target="_blank">yEd Graph Editor</a>, scritto in <em>Java. I suoi </em><a href="http://www.yworks.com/products/yfiles/doc/developers-guide/hierarchical_layouter.html" target="_blank">Hierarchical Layout</a> sono di veloce utilizzo (quindi nessun tipo di rallentamento come qualcuno potrebbe pensare) e gestiti tramite un interfaccia grafica molto piacevole.</p> <br /><a href="http://www.yworks.com/img/gallery/autogen/yedscreen22_800x500.png" target="_blank"><img title="yededitor" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="250" alt="yededitor" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SbKfV6rxCOI/AAAAAAAAA9o/OHMMDcW3O6Q/yededitor%5B5%5D.jpg?imgmax=800" width="400" border="0" /></a> <p align="justify">Infine per quanto riguarda la progettazione di interfacce web si possono benissimo utilizzare i tool visti fino a questo momento, ma un software che merita la giusta attenzione è <a href="http://www.balsamiq.com/" target="_blank">Balsamiq</a>. <br />La sua funzione più peculiare  è la possibilità di creare dei <a href="http://it.wikipedia.org/wiki/Mock-up" target="_blank">mockup</a>, ossia delle bozze di interfacce. Applicazione a dir poco geniale, è sviluppata in <a href="http://www.adobe.com/it/products/flex/" target="_blank">Flex</a>, e rende la nostra bozza simile a quella che avremmo realizzato tramite gli strumenti tradizionali: carta e matita.</p> <br /><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SbKfWoCDX1I/AAAAAAAAA9s/gpya3ksKpxM/s1600-h/balsamiq%5B4%5D.jpg" target="_blank"><img title="balsamiq" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="267" alt="balsamiq" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SbKfYxaJAuI/AAAAAAAAA9w/_7vY0aeXNSU/balsamiq_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /></a> <p align="justify">Esiste una versione <em>online</em>: <br /><a href="http://www.balsamiq.com/demos/mockups/Mockups.html" target="_blank">Demo Balsamiq</a> <br />ma anche una versione <em>desktop</em> a <strong><em>79$</em></strong>. <br />Un’ultima cosa importante su questo progetto: è stato realizzato da un italiano, <a href="http://www.balsamiq.com/company" target="_blank">Giacomo Guilizzoni</a>, un motivo in più per provarlo (in questo caso un pò di patriottismo ci sta tutto).</p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-27762088763569450472009-03-03T10:00:00.000+01:002009-03-03T10:00:01.117+01:00Family Show v3.0<p align="justify">Tempo fa avevo <a href="http://addshare.blogspot.com/2008/07/creare-un-albero-genealogico.html" target="_blank">segnalato</a> alcuni servizi web per la creazione di alberi genealogici, oggi invece vi segnalo l’ultima versione, la <strong><em>3.0</em></strong> di <a href="http://www.vertigo.com/FamilyShow.aspx" target="_blank">Family Show</a>. <br />Creato dalla società <strong><em>Vertigo</em></strong> per conto di <strong><em>Microsoft</em></strong>, permette di gestire il proprio albero genealogico. <br />La cosa interessante è l’uso delle ultime tecnologie: <a href="http://msdn.microsoft.com/en-us/library/ms754130.aspx" target="_blank">WPF</a>, <a href="http://msdn.microsoft.com/en-us/vcsharp/aa904594.aspx" target="_blank">LINQ</a>, ecc, ma ancora più interessante è che il codice è pubblicato su <a href="http://www.codeplex.com/familyshow" target="_blank">codeplex</a> (un super starter kit per comprendere al meglio <strong><em>Windows Presentation Foundation</em></strong>). <br />E’ installabile attraverso <a href="http://www.vertigo.com/downloads/FamilyShow/v3/FamilyShow.application" target="_blank">ClickOnce</a> (poco più di <em>2 MB</em>). <br /><em>NB</em>: sto facendo qualche test su <a href="http://www.microsoft.com/italy/windows/products/windowsvista/default.mspx" target="_blank">Vista</a> e devo dire che è superlativo.<a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SaxMO5gKbxI/AAAAAAAAA9c/AXwdrxB1DOk/s1600-h/FamilyShow%5B3%5D.jpg" target="_blank"><img title="FamilyShow" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="312" alt="FamilyShow" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SaxMPgDIUOI/AAAAAAAAA9g/VcBA1-wyYL0/FamilyShow_thumb%5B1%5D.jpg?imgmax=800" width="400" border="0" /></a></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com1tag:blogger.com,1999:blog-6141108063981366981.post-62552425577142986672009-03-01T16:13:00.001+01:002009-03-01T16:13:15.860+01:00Link .Net #16<p align="justify">Un altro appuntamento con la rubrica <em><strong>Link .Net</strong></em>: <br /> <br /><a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2009/02/06/creating-rss-feeds-using-asp-net.aspx" target="_blank">Creating RSS Feeds Using ASP.Net</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484"><em>Kevin Miller</em> ci mostra come creare un <a href="http://it.wikipedia.org/wiki/Really_simple_syndication#Aggregatore_di_notizie" target="_blank">RSS Feed</a> in <em>Asp.Net</em> tramite le classi presenti nel nuovo <em>namespace</em> <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.aspx" target="_blank">Syndication</a> introdotto con il <strong><em>Framework .Net 3.5</em></strong>.</td> <td valign="top" width="16"><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SaqmAikEmtI/AAAAAAAAA9E/2rrO1VmGM3I/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SaqmA3GskAI/AAAAAAAAA9I/gUxJgzQxGs8/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.ugidotnet.org/raffaele/archive/2009/02/20/wpf-elaborazioni-lunghe-e-presunti-memory-leak.aspx" target="_blank">WPF, elaborazioni lunghe e presunti memory leak</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Un post da leggere assolutamente e da inserire tra i preferiti. <em>Raffaele Rialdi </em>ci regala un’analisi, basata su alcuni suoi test, sulla disallocazione di oggetti e risorse in <strong><em>WPF</em></strong>.</td> <td valign="top" width="16"><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SaqmBN42LPI/AAAAAAAAA9M/zW8EcesWcoU/s1600-h/it2.png" target="_blank"><img title="it" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="it" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SaqmBdDgYtI/AAAAAAAAA9Q/vT13jT4na2A/it_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/wriju/archive/2009/02/20/ado-net-entity-framework-working-stored-procedure.aspx" target="_blank">ADO.NET Entity Framework : Working with Stored Procedure</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Un semplicissimo esempio su come far uso delle <em>stored procedure</em> con <strong><em>ADO.NET Entity Framework</em></strong>.</td> <td valign="top" width="16"><a href="http://lh5.ggpht.com/_yWfUiX0hEgE/SaqmBnbQvII/AAAAAAAAA9U/eKjTCHxPXkk/s1600-h/en5.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SaqmB1ZaeaI/AAAAAAAAA9Y/CNRPCW7bp1o/en_thumb1.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-34153139896794717792009-02-25T10:41:00.008+01:002009-02-25T10:53:16.705+01:00Un nuovo look per Visual Studio 2010In anteprima le immagini del nuovo look, basato su <em><strong>WPF</strong></em> per <em><strong>Visual Studio 2010</strong></em>:<br /><a href="http://lqe04w.bay.livefilestore.com/y1pM3CQwqvSHPYBXFTEwSG8Upqj6iV5dSJplbGUhcsYzDLUyNhpU7ezQhYf0HaD0W5wUDjd6iqHRfyZ8f8D6VH2OQ/Look2VS2010.jpg" target="_blank"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLouPKWdUgj7EVQxC0STTOezK9rfJ2QcXTLrC0jWqiy0028Pbt0woifshPZDZMr_cRs5PafAe8rtgOX7_G4iWg9lLOWAZV5-NrY2hoUNh0162DxqUhvrYcsQobHrHirI5EkaOqjyfffyw/s400/Look1VS2010.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306669493868775746" /></a><br><br /><strong>Fonte</strong>: <a href="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx" target="_blank">Blog Jason Zander's</a>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-69774499521507941332009-02-22T12:20:00.013+01:002009-02-22T13:06:56.822+01:00Dal wallpaper al web<p align="justify">Qualche giorno fa curiosando su <a href="http://www.smashingmagazine.com/" target="_blank">Smashing Magazine</a> la mia attenzione è stata catturata da un <a href="http://88.198.60.17/wallpapers/february09/february-09-the_smallest_month-calendar-1920x1200.jpg" target="_blank">wallpaper</a> (disegnato da <a href="http://www.liamjmoore.com/" target="_blank">Liam J Moore</a>) del seguente post: <a href="http://www.smashingmagazine.com/2009/01/30/desktop-wallpaper-calendar-february-2009/" target="_blank">Desktop Wallpaper Calendar: February 2009</a>. Mi è piaciuto così tanto che ho pensato di trasformare il tutto in un calendario per il web facendo uso dell’ormai insostituibile <a href="http://jquery.com/" target="_blank">jQuery</a>. <br />Ma partiamo con ordine indicando tutti gli strumenti da lavoro: <br />1)<em>jQuery</em> per la parte <em>JavaScript</em>; <br />2)<em>CSS</em>; <br />3)un controllo <em>calendar</em>: <a href="http://keith-wood.name/datepick.html" target="_blank">jQuery Datepicker</a>; </p> <p align="justify">Il primo passo consiste nel creare il <em>markup</em> della pagina:<font face="Arial" size="1"> </font></p> <div> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff"><</span><span style="color: #800000">table</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="pagerYear"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff"><</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span><span style="color: #0000ff">><</span><span style="color: #800000">span</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="txtYear"</span><span style="color: #0000ff">></span>2009<span style="color: #0000ff"></</span><span style="color: #800000">span</span><span style="color: #0000ff">></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="right"</span><span style="color: #0000ff">><</span><span style="color: #800000">img</span> <span style="color: #ff0000">src</span><span style="color: #0000ff">="img/meno.jpg"</span> <span style="color: #ff0000">onclick</span><span style="color: #0000ff">="minYear()"</span><span style="color: #0000ff">/></span> <br /> <span style="color: #0000ff"><</span><span style="color: #800000">img</span> <span style="color: #ff0000">src</span><span style="color: #0000ff">="img/piu.jpg"</span> <span style="color: #ff0000">onclick</span><span style="color: #0000ff">="plusYear()"</span><span style="color: #0000ff">/></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff"></</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff"></</span><span style="color: #800000">table</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="vertical-align:bottom; height:200px; position:absolute"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_gennaio"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Gen<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_febbraio"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Feb<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_marzo"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Mar<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_aprile"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Apr<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_maggio"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Mag<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_giugno"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Giu<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_luglio"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Lug<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_agosto"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Ago<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_settembre"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Set<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_ottobre"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Ott<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_novembre"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Nov<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="mese_dicembre"</span><span style="color: #0000ff">><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>Dic<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> <span style="color: #0000ff"><</span><span style="color: #800000">div</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="divCal"</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="display:none; position:absolute"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> <span style="color: #0000ff"><</span><span style="color: #800000">span</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="calendar"</span><span style="color: #0000ff">></</span><span style="color: #800000">span</span><span style="color: #0000ff">></span> </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> <span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> <span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span></font></font></pre></div></div><br /><br />Risultato:<br /><a href="http://lqe04w.bay.livefilestore.com/y1p_6r5S2Q_y-dBC8WYEeJ1wpHx3gLDvD1UGa6vwyWdPLf0AytjdPIQv6reXRczJlnhgDmc511zW3vJc96Wn7Jpuw/CalendarWallpaper5.jpg" target="_blank"><img title="CalendarWallpaper4" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="143" alt="CalendarWallpaper4" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SaE06uVBdrI/AAAAAAAAA8g/Z0qXBUIWGCE/CalendarWallpaper4%5B4%5D.jpg?imgmax=800" width="400" border="0" /></a> <br /><br />Per quanto riguarda il CSS usato nella pagina potete scaricarlo da qui:<br /><a href="http://lqe04w.bay.livefilestore.com/y1pvlzfsSouSWk7JP1DZgwwjhXxUzshhzdeRgBoJZuSgRCeCfAPMhjhTEa0hVFg7DzTv6T7VsqzA86nxCkVM1Ey4A/styleCalendar.css?download" target="_blank">CSS Page</a> <br /><p align="justify">Fin qui tutto molto semplice, si è trattato di inserire un numero di <strong><em>tag div</em></strong> pari al numero di mesi. Ma come si può, notare dal wallpaper i singoli mesi dovrebbero alla selezione dell’utente abbassarsi/alzarsi.<br />Personalmente ho optato per l’effetto <a href="http://docs.jquery.com/UI/Effects/Size" target="_blank">Size</a> che consente di ridimensionare l’elemento specificando valori per le proprietà <strong><em>width</em></strong> e <strong><em>height</em></strong>.<br />In prima battuta la funzione può essere così impostata:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> $(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> $(<span style="color: #006080">"div[id^='mese_']"</span>).toggle(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> height: 100</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> }, origin: [<span style="color: #006080">'200'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> }, </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> <span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> height: 200</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> }, origin: [<span style="color: #006080">'100'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> });</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> });</font></font></pre></div></div><p align="justify">Per ogni <em>div</em> la cui proprietà <em>id</em> inizia per “<strong><em>mese_”</em></strong> tramite l’effetto <a href="http://docs.jquery.com/Effects/toggle" target="_blank">Toggle</a> altero la visualizzazione (riga 2). La prima volta per effetto del <em>Size</em> la dimensione del <em>div</em> selezionato passerà da un’altezza pari a <strong><em>200px</em></strong> a una di <em><strong>100px</strong></em>. La seconda volta la sua dimensione verrà riportata a quella originaria.<br />Così facendo però ogni mese può essere ridimensionato ad un’altezza pari a <strong><em>100px.</em><br /></strong></p><br /><a href="http://lh6.ggpht.com/_yWfUiX0hEgE/SaE06x05QBI/AAAAAAAAA8k/DLXfJ2v_AFY/s1600-h/CalendarWallpaper13.jpg" target="_blank"><img title="CalendarWallpaper1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="CalendarWallpaper1" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SaE07SGmIgI/AAAAAAAAA8o/xsJIhZqg_48/CalendarWallpaper1_thumb1.jpg?imgmax=800" width="400" border="0" /></a> <br /><p align="justify">Quello che invece mi sono proposto di ottenere è di avere solo un mese alla volta ridimensionato, tutti gli altri devono riconquistare la loro dimensione originaria: <strong><em>200px</em></strong>. <br /><br />Questo risultato si può ottenere agendo sui <a href="http://docs.jquery.com/Events/trigger" target="_blank">Trigger</a>. La funzione vista in precedenza si arricchisce nel seguente modo:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">var</span> idOldDivSized = <span style="color: #006080">''</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> $(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">"div[id^='mese_']"</span>).toggle(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">if</span> (idOldDivSized != <span style="color: #006080">""</span>) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> $(<span style="color: #006080">"#"</span> + idOldDivSized + <span style="color: #006080">""</span>).trigger(<span style="color: #006080">'click'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> height: 100</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> , origin: [<span style="color: #006080">'200'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> idOldDivSized = <span style="color: #0000ff">this</span>.id;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> }, <span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> height: 200</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> }, origin: [<span style="color: #006080">'100'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> idOldDivSized = <span style="color: #006080">""</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> $(this).parent().css("bottom", "0px");</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 24:</span> });<br /> 25:});</font></font></pre></div></div><br /><p align="justify">Le nuove righe sono: <strong><em>1, 3, 4, 5, 14, 22 e 23</em></strong>. Sostanzialmente tramite il <em>trigger</em> possiamo innescare l’evento sul div precedentemente selezionato (riga 4 e 5). Quest’ultima informazione viene salvata in una variabile globale: <strong><em>idOldDivSized </em></strong>(riga 14 e 22). La riga 23 è un <em>fix</em> per il browser IE. <br /><br />In questo modo ottengo:<a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SaE07hT3pNI/AAAAAAAAA8s/zpF6lJvpygA/s1600-h/CalendarWallpaper23.jpg" target="_blank"><img title="CalendarWallpaper2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="CalendarWallpaper2" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SaE07yLU4lI/AAAAAAAAA8w/jZq2xoaGFFk/CalendarWallpaper2_thumb1.jpg?imgmax=800" width="400" border="0" /></a> <br />Non rimane che dare uno sguardo ai passi necessari a far comparire il controllo calendario al di sotto del mese. Per semplicità ho scelto un controllo già bello e pronto: <strong><em>Datepicker</em></strong>. Per chi fosse interessato ad una collezione di controlli <br />caldendar in <em>JavaScript</em> vi rimando al seguente post:<br /><a href="http://www.bitrepository.com/web-programming/javascript/date-pickers.html" target="_blank">A collection of 14 Excellent JavaScript Date Pickers</a> <br />Il controllo nella fattispecie è personalizzabile in mille aspetti. Per esempio si può decidere se visualizzare una <strong><em>dropdownlist</em></strong> contenente gli anni/mesi, modificare lo stile ecc. <br />Nel mio caso il calendario deve mostrare solo i giorni. I parametri da settare sono ben <a href="http://keith-wood.name/datepickRef.html" target="_blank">documentati</a>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> $(<span style="color: #006080">"#calendar"</span>).datepick({ changeMonth: <span style="color: #0000ff">false</span>,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> changeYear: <span style="color: #0000ff">false</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> });</font></font></pre></div></div><p align="justify">Per eliminare la parte superiore del controllo in cui vengono mostrati gli elementi <strong><em>prev</em></strong> e <strong><em>next</em></strong> l’unica soluzione che ho trovato è stata quella di intervenire sul <strong><em>CSS</em></strong>, in particolar modo sulla classe: <strong><em>datepick-links</em></strong>, settando la proprietà <strong><em>display</em></strong> a <strong><em>none</em></strong>.<br />Ancora una volta modifichiamo la funzione vista fino a questo momento:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">var</span> idOldDivSized = <span style="color: #006080">''</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> $(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">"div[id^='mese_']"</span>).toggle(<span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">if</span> (idOldDivSized != <span style="color: #006080">""</span>) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> $(<span style="color: #006080">"#"</span> + idOldDivSized + <span style="color: #006080">""</span>).trigger(<span style="color: #006080">'click'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> height: 100</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> , origin: [<span style="color: #006080">'200'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> idOldDivSized = <span style="color: #0000ff">this</span>.id;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> modifyCal($(<span style="color: #0000ff">this</span>).parent().css(<span style="color: #006080">"left"</span>), idOldDivSized);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> }, <span style="color: #0000ff">function</span>() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> $(<span style="color: #006080">'#divCal'</span>).css(<span style="color: #006080">"display"</span>, <span style="color: #006080">"none"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> $(<span style="color: #0000ff">this</span>).effect(<span style="color: #006080">"size"</span>, {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> to: {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> width: 60,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> height: 200</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> }, origin: [<span style="color: #006080">'100'</span>, <span style="color: #006080">'0'</span>]</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> }, 1000);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 24:</span> idOldDivSized = <span style="color: #006080">""</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 25:</span> $(this).parent().css("bottom", "0px");</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 26:</span> });<br /> 27:});</font></font></pre> </div></div><p align="justify">Le nuove righe sono: <strong><em>15 e 17</em></strong>. La riga <em><strong>17</strong></em> non merita di essere commentata più di tanto, nel senso che non fa altro che rendere non visibile il <em>div</em> che contiene il controllo calendario. <br /><br />Invece la riga <strong><em>15</em></strong> è estremamente interessante. In essa richiamo la funzione <strong><em>modifyCal </em></strong>(responsabile della visualizzazione del calendario), passando come parametri una posizione e l’<em>id</em> del <strong><em>div</em></strong> selezionato (es: <strong><em>“mese_marzo”</em></strong>).<br />Qualcuno forse avrà notato che la posizione che passo come parametro è quella dell’oggetto <strong><em>parent</em></strong> e non come ci si può immaginare quella dell’oggetto <em>div/mese </em>scelto: <br /><strong><em>$(this).css(“left”)</em></strong><br />Il motivo è da ricercare nell’effetto <em>Size</em>. Non sono andato troppo in profondità con l’analisi ma osservando quello che accade tramite <a href="http://getfirebug.com/" target="_blank">Firebug</a> sembra che il <em>div</em> da ridimensionare viene incapsulato in un <em>div</em> contenitore il quale contiene le informazioni di posizione (per chi fosse interessato consiglio di iniziare col guardare lo script dell’effetto):<br /><a href="http://lqe04w.bay.livefilestore.com/y1pA7Scq8LCsoyXQH5tWY3S7NzmbLz90cqoOzHYrajnvQtBfrLAQ-eLtbUpmgCUBkNhAwB7ctuTqpo3xi7E2EuPfA/CalendarWallpaper3.jpg" target="_blank"><img title="CalendarWallpaper3" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="97" alt="CalendarWallpaper3" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SaE08YKxK9I/AAAAAAAAA80/ZWPyDIGBC3I/CalendarWallpaper34.jpg?imgmax=800" width="400" border="0" /></a>  <br />Ecco la funzione <strong><em>modifyCal</em></strong>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">function</span> convertMonths(month) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">switch</span> (month){ </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_gennaio"</span>: </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">return</span> 1; </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_febbraio"</span>: </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff">return</span> 2;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_marzo"</span>: </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> <span style="color: #0000ff">return</span> 3;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_aprile"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> <span style="color: #0000ff">return</span> 4;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_maggio"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> <span style="color: #0000ff">return</span> 5;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_giugno"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> <span style="color: #0000ff">return</span> 6;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_luglio"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> <span style="color: #0000ff">return</span> 7;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_agosto"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> <span style="color: #0000ff">return</span> 8;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_settembre"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> <span style="color: #0000ff">return</span> 9;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_ottobre"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> <span style="color: #0000ff">return</span> 10;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_novembre"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 24:</span> <span style="color: #0000ff">return</span> 11;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 25:</span> <span style="color: #0000ff">case</span> <span style="color: #006080">"mese_dicembre"</span>:</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 26:</span> <span style="color: #0000ff">return</span> 12;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 27:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 28:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 29:</span>  </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 30:</span> <span style="color: #0000ff">function</span> modifyCal(positionLeft, month) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 31:</span> $(<span style="color: #006080">'#divCal'</span>).css(<span style="color: #006080">"top"</span>, <span style="color: #006080">"200px"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 32:</span> $(<span style="color: #006080">'#divCal'</span>).css(<span style="color: #006080">"display"</span>, <span style="color: #006080">"block"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 33:</span>  </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 34:</span> <span style="color: #0000ff">var</span> da = <span style="color: #0000ff">new</span> Date(parseInt($('#txtYear').html()), convertMonths(month) - 1, 1);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 35:</span> $(<span style="color: #006080">"#calendar"</span>).datepick(<span style="color: #006080">'destroy'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 36:</span> $(<span style="color: #006080">"#calendar"</span>).datepick({ changeMonth: <span style="color: #0000ff">false</span>,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 37:</span> changeYear: <span style="color: #0000ff">false</span>,</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 38:</span> defaultDate: da</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 39:</span> });</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 40:</span> $(<span style="color: #006080">'#theme'</span>).attr(<span style="color: #006080">'href'</span>, <span style="color: #006080">"jquery.datepick."</span> + month + <span style="color: #006080">".css"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 41:</span> $(<span style="color: #006080">"#divCal"</span>).animate({</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 42:</span> left: positionLeft</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 43:</span> }, 1500);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 44:</span> }</font></font></pre></div></div><p align="justify">Viene generata una data di <em>default</em> da assegnare al calendario ( riga 34). Il div viene spostato tramite <a href="http://docs.jquery.com/Effects/animate" target="_blank">animazione</a> nella posizione indicata attraverso il parametro <strong><em>positionLeft</em></strong> (riga 41 a 43). Infine viene caricato il <strong><em>CSS</em></strong> del calendario modificando l’attributo <strong><em>href</em></strong> del tag <strong><em>style </em></strong>(riga 40):</p><br /><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff"><</span><span style="color: #800000">link</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">="jquery.datepick.css"</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">="stylesheet"</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">="text/css"</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="theme"</span><span style="color: #0000ff">/></span></font></font></pre></div></div><p align="justify">Significa che ogni mese è corredato di un file <strong><em>CSS </em></strong>(modificati opportunamente). Il nome di questo file è composto da “<strong><em>jquery.datepick.</em></strong>” più l’<em>id</em> del div/mese più l’estensione <em>css</em>.<br />Infine la pulsantiera in alto che permette di andare avanti ed indietro con gli anni si basa su due semplici funzioni: <strong><em>minYear</em></strong> e <strong><em>plusYear</em></strong>:</p><br /><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">function</span> minYear() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> $(<span style="color: #006080">'#txtYear'</span>).html(parseInt($(<span style="color: #006080">'#txtYear'</span>).html()) - 1);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span>  </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff">function</span> plusYear() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> $(<span style="color: #006080">'#txtYear'</span>).html(parseInt($(<span style="color: #006080">'#txtYear'</span>).html()) + 1); </font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> }</font></font></pre></div></div><p align="justify">Personalmente ho trovato l’esercizio notevolmente stimolante e l’uso di <em>jQuery</em> ha reso tutto molto più divertente: <br /><a href="http://lqe04w.bay.livefilestore.com/y1pyGtBHpsKgMuRlI0ZP-CZViDEmTxWTB_BV6f8idzDt25ne3ihAx-b9MjMcXZ33GUnHFqngYUX1A9HpQ9hSDMgGw/CalendarWallpaper7.jpg" target="_blank"><img title="CalendarWallpaper6" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="CalendarWallpaper6" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SaE6bRUDpNI/AAAAAAAAA84/qHqa0VGamc0/CalendarWallpaper6%5B4%5D.jpg?imgmax=800" width="400" border="0" /></a><br />Come al solito buono studio!!!. <br />NB: test effettuati sui principali browser: <br /><em>IE 7</em>, <em>Firefox 3</em>, <em>Chrome</em> ed <em>Opera 9</em>.</p>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com4tag:blogger.com,1999:blog-6141108063981366981.post-9375986506022221382009-02-16T21:21:00.001+01:002009-02-16T21:21:35.994+01:00Link .Net #15<p align="justify">Quindicesimo appuntamento con <em><strong>Link .Net</strong></em>: <br /> <br /><a href="http://sachabarber.net/?p=429" target="_blank">WPF : Circular Progress Bar</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Stanchi della solita <em>progress bar</em>? C’è chi si è divertito nel realizzare uno <em>UserControl</em> in <strong><em>WPF</em></strong> a forma circolare.</td> <td valign="top" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SZnKzccIF4I/AAAAAAAAA8Y/lFQw52WOyW4/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SZnKz5D_IyI/AAAAAAAAA8c/qqx6UIqqMLY/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blog.tylerholmes.com/2008/03/adding-sharepoint-intellisense-to.html" target="_blank">Adding SharePoint Intellisense to Visual Studio 2008</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Come abilitare l'<em>intellisense</em> per <strong><em>SharePoint</em></strong> utilizzando <em>Visual Studio 2008</em>.</td> <td valign="top" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SZnKzccIF4I/AAAAAAAAA8Y/lFQw52WOyW4/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SZnKz5D_IyI/AAAAAAAAA8c/qqx6UIqqMLY/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blog.sqlauthority.com/2009/02/13/sql-server-simple-example-of-reading-xml-file-using-t-sql/" target="_blank">SQL SERVER - Simple Example of Reading XML File Using T-SQL</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Un semplice tutorial su come leggere tramite <strong><em>T-SQL</em></strong> un file <strong><em>XML</em></strong>.</td> <td valign="top" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SZnKzccIF4I/AAAAAAAAA8Y/lFQw52WOyW4/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SZnKz5D_IyI/AAAAAAAAA8c/qqx6UIqqMLY/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table> <br /><a href="http://blogs.msdn.com/stevecla01/archive/2009/02/15/microsoft-recite.aspx" target="_blank">Microsoft Recite</a> <br /> <table cellspacing="0" cellpadding="2" width="500" border="0"><tbody> <tr> <td valign="top" width="484">Progetto <em>Microsoft</em> per <strong><em>Windows Mobile</em></strong> che consente di registrare note vocali. Da provare.</td> <td valign="top" width="16"><a href="http://lh3.ggpht.com/_yWfUiX0hEgE/SZnKzccIF4I/AAAAAAAAA8Y/lFQw52WOyW4/s1600-h/en2.png" target="_blank"><img title="en" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="11" alt="en" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SZnKz5D_IyI/AAAAAAAAA8c/qqx6UIqqMLY/en_thumb.png?imgmax=800" width="16" border="0" /></a> </td> </tr> </tbody></table></p> Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0tag:blogger.com,1999:blog-6141108063981366981.post-81322741237214379452009-02-14T21:23:00.004+01:002009-02-14T21:34:59.455+01:00Fare un pò di spazio nel GridView<p align="justify">I clienti si sà non sono semplici da accontentare. Sempre più spesso mi capita di sentire per web application intranet che amministratori e non solo, devono poter visionare venti o più colonne in una griglia, nonostante la possibilità di generare <em>report</em> in <em>Excel</em> o la possibilità di utilizzare custom applicazioni sviluppate tramite <a href="http://msdn.microsoft.com/en-us/vsto/default.aspx" target="_blank">VSTO</a>. Come si può facilmente immaginare oltre alla dubbia utilità, c’è comunque un problema legato alla leggibilità dei dati. <br />E’ anche vero che è possibile trovare controlli, che tra le tante feature, permettono di ridimensionare a piacimento la dimensione delle righe/colonne oppure poter cambiare la posizione delle colonne all’interno della griglia ecc. <br />Qualche esempio: <br /><a href="http://demos.telerik.com/aspnet-ajax/grid/examples/client/resizing/defaultcs.aspx" target="_blank">RadGrid della Telerik</a> <br /><a href="http://trirand.com/jqgrid/jqgrid.html" target="_blank">jqGrid</a> <br /><a href="http://www.componentart.com/webui/demos/demos_control-specific/grid/features/ajax_grid/webform1.aspx" target="_blank">AJAX Grid della Ccomponentart</a> <br />Ma volendo qualcosa si può facilmente creare con pochissimo sforzo. <br />Un’idea potrebbe essere quella di poter “rimuovere” la colonna desiderata, cliccando semplicemente sull’header di essa, per poi “rinserirla” tramite un apposito pulsante.</p> <br /><a href="http://lh4.ggpht.com/_yWfUiX0hEgE/SZcoP4uhaFI/AAAAAAAAA8E/E0Z0toUTZrM/s1600-h/SchemaVisibilityGrid4.jpg" target="_blank"><img title="SchemaVisibilityGrid" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="276" alt="SchemaVisibilityGrid" src="http://lh6.ggpht.com/_yWfUiX0hEgE/SZcoQH8SM6I/AAAAAAAAA8I/Q3N7gCgdtss/SchemaVisibilityGrid_thumb2.jpg?imgmax=800" width="400" border="0" /></a> <br />Per semplicità il controllo <em>GridView</em> è composto da quattro <strong><em>TemplateColumn: <br /> <br /></em></strong> <div> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff"><</span><span style="color: #800000">table</span> <span style="color: #ff0000">cellpadding</span><span style="color: #0000ff">="2"</span> <span style="color: #ff0000">cellspacing</span><span style="color: #0000ff">="2"</span> <span style="color: #ff0000">width</span><span style="color: #0000ff">="100%"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff"><</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="right"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:Panel</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="pnlBox"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff"><</span><span style="color: #800000">table</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff"><</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span><span style="color: #0000ff">><</span><span style="color: #800000">img</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="imgCollapse"</span> <span style="color: #ff0000">src</span><span style="color: #0000ff">="img/plus.gif"</span> <span style="color: #ff0000">alt</span><span style="color: #0000ff">="Collapse"</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="cursor:pointer"</span> <br /> <span style="color: #ff0000">onclick</span><span style="color: #0000ff">="modifiedImage()"</span><span style="color: #0000ff">/></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> <span style="color: #0000ff"></</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> <span style="color: #0000ff"><</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span><span style="color: #0000ff">><</span><span style="color: #800000">asp:Panel</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="pnlColumns"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="display:none"</span><span style="color: #0000ff">></</span><span style="color: #800000">asp:Panel</span><span style="color: #0000ff">></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> <span style="color: #0000ff"></</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> <span style="color: #0000ff"></</span><span style="color: #800000">table</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:Panel</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> <span style="color: #0000ff"></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> <span style="color: #0000ff"></</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 16:</span> <span style="color: #0000ff"><</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 17:</span> <span style="color: #0000ff"><</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 18:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:GridView</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="dgrDelete"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">AutoGenerateColumns</span><span style="color: #0000ff">="false"</span> <span style="color: #ff0000">Width</span><span style="color: #0000ff">="100%"</span> <br /> <span style="color: #ff0000">OnPreRender</span><span style="color: #0000ff">="dgrDelete_PreRender"</span> <span style="color: #ff0000">CssClass</span><span style="color: #0000ff">="GridViewStyle"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 19:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Columns</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 20:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:TemplateField</span> <span style="color: #ff0000">HeaderText</span><span style="color: #0000ff">="Col1"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 21:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 22:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:Label</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="lblCol1"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">='<%#Eval("Col1") %>'</span><span style="color: #0000ff">></</span><span style="color: #800000">asp:Label</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 23:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 24:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:TemplateField</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 25:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:TemplateField</span> <span style="color: #ff0000">HeaderText</span><span style="color: #0000ff">="Col2"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 26:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 27:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:Label</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="lblCol2"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">='<%#Eval("Col2")%>'</span><span style="color: #0000ff">></</span><span style="color: #800000">asp:Label</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 28:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 29:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:TemplateField</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 30:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:TemplateField</span> <span style="color: #ff0000">HeaderText</span><span style="color: #0000ff">="Col3"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 31:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 32:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:Label</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="lblCol3"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">='<%#Eval("Col3")%>'</span><span style="color: #0000ff">></</span><span style="color: #800000">asp:Label</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 33:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 34:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:TemplateField</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 35:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:TemplateField</span> <span style="color: #ff0000">HeaderText</span><span style="color: #0000ff">="Col4"</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 36:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 37:</span> <span style="color: #0000ff"><</span><span style="color: #800000">asp:Label</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="lblCol4"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">='<%#Eval("Col4")%>'</span><span style="color: #0000ff">></</span><span style="color: #800000">asp:Label</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 38:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ItemTemplate</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 39:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:TemplateField</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 40:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Columns</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 41:</span> <span style="color: #0000ff"><</span><span style="color: #800000">RowStyle</span> <span style="color: #ff0000">CssClass</span><span style="color: #0000ff">="RowStyle"</span> <span style="color: #0000ff">/></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 42:</span> <span style="color: #0000ff"><</span><span style="color: #800000">HeaderStyle</span> <span style="color: #ff0000">CssClass</span><span style="color: #0000ff">="HeaderStyle"</span> <span style="color: #0000ff">/></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 43:</span> <span style="color: #0000ff"><</span><span style="color: #800000">AlternatingRowStyle</span> <span style="color: #ff0000">CssClass</span><span style="color: #0000ff">="AltRowStyle"</span> <span style="color: #0000ff">/></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 44:</span> <span style="color: #0000ff"></</span><span style="color: #800000">asp:GridView</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 45:</span> <span style="color: #0000ff"></</span><span style="color: #800000">td</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 46:</span> <span style="color: #0000ff"></</span><span style="color: #800000">tr</span><span style="color: #0000ff">></span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 47:</span> <span style="color: #0000ff"></</span><span style="color: #800000">table</span><span style="color: #0000ff">></span></font></font></pre></div></div><p align="justify">Gli elementi principali del <em>markup</em> appena visto sono il controllo <strong><em>GridView</em></strong> e un <strong><em>Panel</em></strong>. Quest’ultimo con <em>id</em> <strong><em>pnlColumns</em></strong> può essere minimizzato tramite l’immagine con <em>id</em> <strong><em>imgCollapse. </em></strong><br />Sull’evento <strong><em>PreRender</em></strong> del controllo <em>GridView</em> aggiungo per ogni intestazione di colonna l’evento <strong><em>onclick</em></strong> e l’attributo <em>id</em> tramite la <em>collection</em> <strong><em>Attributes</em></strong>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> dgrDelete_PreRender(<span style="color: #0000ff">object</span> sender, EventArgs e)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff">if</span> (dgrDelete.HeaderRow != <span style="color: #0000ff">null</span> && dgrDelete.HeaderRow.Cells.Count > 0)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff">int</span> count = 0;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff">foreach</span> (TableCell cell <span style="color: #0000ff">in</span> dgrDelete.HeaderRow.Cells)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> cell.Attributes.Add(<span style="color: #006080">"id"</span>, <span style="color: #006080">"th"</span> + count.ToString());</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> cell.Attributes.Add(<span style="color: #006080">"onclick"</span>, <span style="color: #006080">"removeColumns("</span> + count.ToString() + <span style="color: #006080">")"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> count += 1;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> }</font></font></pre><br /> </div></div><p align="justify">L’<em>id</em> di ogni header di colonna è composto dalla concatenazione di due elementi: “<strong><em>th”</em></strong> e un indice di posizione. Sull’evento <em>onclick</em> viene invece, richiamata la funzione <strong><em>removeColumns</em></strong> passando come unico paramentro l’indice, che come abbiamo visto in precedenza compone parte dell’<em>id</em> dell’intestazione. In questo modo possiamo facilmente recuperare la colonna che si desidera “rimuovere”.<br /><br />Non ci resta che dare uno sguardo alla parte, forse più interessante, riguardante <em>JavaScript</em>. Con l’aiuto del fido <a href="http://jquery.com/" target="_blank">JQuery</a> partiamo dall’analizzare la funzione <strong><em>removeColumns</em></strong>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #008000">//Rendo non visibile la colonna selezionata nella griglia</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">function</span> removeColumns(index) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">"#dgrDelete tbody tr"</span>).each(<span style="color: #0000ff">function</span>(n) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">this</span>.cells[index].style.display = <span style="color: #006080">'none'</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> });</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff">var</span> title = $(<span style="color: #006080">"#th"</span> + index + <span style="color: #006080">""</span>).text();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> $(<span style="color: #006080">"#th"</span> + index + <span style="color: #006080">""</span>).css(<span style="color: #006080">"display"</span>, <span style="color: #006080">"none"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> addBookmarksColumn(title, index);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> }</font></font></pre></div></div><p align="justify">Per ogni riga che compone la griglia (vedere riga 3) imposto per la cella avente l’indice passato come parametro alla funzione, la proprietà <strong><em>display</em></strong> a <strong><em>none</em></strong>, cioè viene resa invisibile (riga 4). Stessa sorte spetta anche alla cella di instestazione della colonna (riga 7), ma prima recupero il testo contenuto (riga 6). Tale testo insieme all’indice, costituiscono i parametri della funzione <strong><em>addBookmarksColumn</em></strong>.</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #008000">//Aggiunge al panel info sulla colonna rimossa dalla griglia</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">function</span> addBookmarksColumn(header, index) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">'#pnlColumns'</span>).append(<span style="color: #006080">"<div id=\"div"</span> + header + <span style="color: #006080">"\">"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> $(<span style="color: #006080">'#pnlColumns'</span>).append(<span style="color: #006080">"<span id=\"sp"</span> + header + <span style="color: #006080">"\" >"</span> + header + <span style="color: #006080">" </span>"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> $(<span style="color: #006080">'#pnlColumns'</span>).append(<span style="color: #006080">"<img id=\"img"</span> + header + <span style="color: #006080">"\" style=\"cursor:pointer\" <br /> src=\"img/add.gif\" onclick=\"addColumns("</span> + index + <span style="color: #006080">")\" />"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> $(<span style="color: #006080">'#pnlColumns'</span>).append(<span style="color: #006080">"</div>"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> }</font></font></pre></div></div><p align="justify">Al pannello <strong><em>pnlColumns </em></strong>viene aggiunto a <em>runtime</em> del codice <em>HTML</em>. In pratica ogni volta che viene “rimossa” una colonna, questo pannello si popola di un <em>tag div</em> composto a sua volta da un <em>tag</em> <em>span</em> contenente il testo dell’header, più un’immagine che consente all’utente di rendere nuovamente visibile la colonna all’interno della griglia. <br />(NB: Ogni elemento presenta l’attributo <em>id</em> composto in parte dal testo della cella di intestazione.) <br />Sull’<em>onclick</em> dell’immagine di <strong><em>add</em></strong> viene richiamata la funzione <strong><em>addColumns</em></strong>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #008000">//Rendo visibile la colonna selezionata nella griglia</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">function</span> addColumns(index) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">"#dgrDelete tbody tr"</span>).each(<span style="color: #0000ff">function</span>(n) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> <span style="color: #0000ff">if</span> ($.browser.msie)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> <span style="color: #0000ff">this</span>.cells[index].style.display = <span style="color: #006080">'block'</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> <span style="color: #0000ff">else</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> <span style="color: #0000ff">this</span>.cells[index].style.display = <span style="color: #006080">'table-cell'</span>;</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> });</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> <span style="color: #0000ff">var</span> title = $(<span style="color: #006080">"#th"</span> + index + <span style="color: #006080">""</span>).text();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> <span style="color: #0000ff">if</span> ($.browser.msie)</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> $(<span style="color: #006080">"#th"</span> + index + <span style="color: #006080">""</span>).css(<span style="color: #006080">"display"</span>, <span style="color: #006080">"block"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 12:</span> <span style="color: #0000ff">else</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 13:</span> $(<span style="color: #006080">"#th"</span> + index + <span style="color: #006080">""</span>).css(<span style="color: #006080">"display"</span>, <span style="color: #006080">"table-cell"</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 14:</span> removeBookmarksColumn(title);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 15:</span> }</font></font></pre> </div></div><p align="justify">Essenzialmente questa <em>runtine</em> si comporta in modo opposto alla funzione <strong><em>removeColumns</em></strong>, in quanto rende visibile la colonna.<br />La differenza sostanziale riguarda il valore assegnato alla proprietà <strong><em>display</em></strong>. Poichè non tutti i browser presentano la stessa compatibilità con questa proprietà, eseguo un controllo sul tipo di browser (riga 4 e 10).<br />In caso di browser come <a href="http://www.google.com/chrome/index.html?hl=it" target="_blank">Chrome</a>, <a href="http://www.mozilla-europe.org/it/firefox/" target="_blank">Firefox</a>, <a href="http://www.opera.com/" target="_blank">Opera</a> utilizzo il valore <strong><em>table-cell</em></strong> per una corretta visualizzazione delle celle (riga 7 e 13), nel caso invece di <em>IE</em> utilizzo il valore <strong><em>block</em></strong>.<br />Non rimane che ripulire il pannello dagli elementi che si riferiscono alla colonna che abbiamo reso visibile tramite la funzione <strong><em>removeBookmarksColumn</em></strong>:</p><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #008000">//Rimuove gli elementi che identificano la colonna nel panel</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">function</span> removeBookmarksColumn(header) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> $(<span style="color: #006080">"#img"</span> + header + <span style="color: #006080">""</span>).remove();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> $(<span style="color: #006080">"#sp"</span> + header + <span style="color: #006080">""</span>).remove();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> $(<span style="color: #006080">"#div"</span> + header + <span style="color: #006080">""</span>).remove();</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> }</font></font></pre> </div></div><br />Infine l’utente può “collassare” il pannello tramite l’immagine con id <strong><em>imgCollapse</em></strong>:<br /><div><div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 1:</span> <span style="color: #008000">//Apre o chiudi il panel contenente le colonne rimosse</span></font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 2:</span> <span style="color: #0000ff">function</span> modifiedImage() {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 3:</span> <span style="color: #0000ff">if</span> ($(<span style="color: #006080">'#imgCollapse'</span>).attr(<span style="color: #006080">'src'</span>) == <span style="color: #006080">"img/plus.gif"</span>) {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 4:</span> $(<span style="color: #006080">'#pnlColumns'</span>).show(<span style="color: #006080">'slow'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 5:</span> $(<span style="color: #006080">'#imgCollapse'</span>).attr(<span style="color: #006080">'src'</span>, <span style="color: #006080">'img/min.gif'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 6:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 7:</span> <span style="color: #0000ff">else</span> {</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 8:</span> $(<span style="color: #006080">'#pnlColumns'</span>).hide(<span style="color: #006080">'slow'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 9:</span> $(<span style="color: #006080">'#imgCollapse'</span>).attr(<span style="color: #006080">'src'</span>, <span style="color: #006080">'img/plus.gif'</span>);</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 10:</span> }</font></font></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><font size="1"><font face="Arial"><span style="color: #606060"> 11:</span> }</font></font></pre></div><br />Oltre alla funzione di minimizzazione viene modificato il valore dell’attributo <strong><em>src</em></strong> dell’immagine (<strong><em>add</em></strong>, <strong><em>min</em></strong>).<br />Il codice come ho già detto in altri post, si può notevolmente migliorare, con ulteriori controlli e personalizzazioni. Per concludere alcune immagini:<br />(NB: lo stile applicato alla griglia lo potete trovare al seguente indirizzo: <a href="http://www.cyberslingers.com/Sandbox/GridView.aspx" target="_blank">Style GridView</a>.)<br /><a href="http://lqe04w.bay.livefilestore.com/y1pD5If4BWh6FJW4L1WbYRxHqbjupBqIWH1Ib4coJOtumUGmG6xT0utZ54O_fTqh2Z0OPaMnYUf74L6dNDNYf_L9g/VisibilityGrid1A.jpg" target="_blank"><img title="VisibilityGrid1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="VisibilityGrid1" src="http://lh5.ggpht.com/_yWfUiX0hEgE/SZcoQY78SCI/AAAAAAAAA8M/y0M0en_75u8/VisibilityGrid18.jpg?imgmax=800" width="400" border="0" /></a> <br /><a href="http://lqe04w.bay.livefilestore.com/y1pqeEdFrCw_4WxBjQ6hkm75spshCp4RKVpZDJbpFOeuAPmB9OJzZ8233sISetbQIVEVE9Xd_qPYd1Nx7cXsnX7BA/VisibilityGrid2A.jpg" target="_blank"><img title="VisibilityGrid2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="VisibilityGrid2" src="http://lh3.ggpht.com/_yWfUiX0hEgE/SZcoQ7MEowI/AAAAAAAAA8Q/0fDlMZBkUCc/VisibilityGrid24.jpg?imgmax=800" width="400" border="0" /></a>  <br /><a href="http://lqe04w.bay.livefilestore.com/y1pR5fdhKxG_MLkxhZ-_u4rKiulUzdcS6__HtFOTwNzNg0OcyRFomGOfLSwODKQzp7AsuwSypr2NHCISa5XaoRZfw/VisibilityGrid3A.jpg" target="_blank"><img title="VisibilityGrid3" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="VisibilityGrid3" src="http://lh4.ggpht.com/_yWfUiX0hEgE/SZcoRMbM0KI/AAAAAAAAA8U/Y12bSu9BRm4/VisibilityGrid34.jpg?imgmax=800" width="400" border="0" /></a></div>Pierlucahttp://www.blogger.com/profile/00833765304769889436noreply@blogger.com0