<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>WebPart</title>
        <link>http://blogs.ugidotnet.org/FabioCarucci/category/2612.aspx</link>
        <description>WebPart</description>
        <language>it-IT</language>
        <copyright>Fabio Carucci</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <item>
            <title>L'arte di lavorare con le WebPart - #15</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/02/01/69452.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Lavorando con la funzionalit&amp;#224; di esportazione di webpart, e collegandomi al mio precedente post &lt;A href="http://blogs.ugidotnet.org/fabiocarucci/archive/2007/01/21/67858.aspx"&gt;#9&lt;/a&gt;, potrebbe capitare il caso in cui un utente provi ad esportare una webpart che contiene una parte dei suoi dati contrassegnati come sensibili; quindi, per riassumere, significa che la webpart ha l'attributo&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;em&gt;[Personalizable(PersonalizationScope.User, true)]&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;nella situazione suddetta possiamo mostrare all'utente un avviso che lo informa di annullare l'operazione perch&amp;#232; non consentita.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;L'oggetto che gestisce ci&amp;#242; &amp;#232; il &lt;em&gt;WebPartManager &lt;/em&gt;e la property &amp;#232; &lt;em&gt;ExportSensitiveDataWarning&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:14473e1c-100d-49a9-ab77-a2d2adbfded6" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 478px; padding-top: 0px"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF; "&gt;&lt;&lt;/span&gt;&lt;span style="color: #800000; "&gt;asp:WebPartManager &lt;/span&gt;&lt;span style="color: #FF0000; "&gt;ID&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;="myWPM"&lt;/span&gt;&lt;span style="color: #FF0000; "&gt; runat&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;="server"&lt;/span&gt;&lt;span style="color: #FF0000; "&gt; ExportSensitiveDataWarning&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;="Attenzione! impossibile esportare dati sensibili"&lt;/span&gt;&lt;span style="color: #FF0000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;/&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/69452.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/02/01/69452.aspx</guid>
            <pubDate>Thu, 01 Feb 2007 15:10:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/69452.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/02/01/69452.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/69452.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/69452.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #14</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69284.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Pu&amp;#242; essere necessario, a volte, inibire ad un utente la possibilit&amp;#224; di effettuare il drag'n'drop di una webpart da una zona ad un'altra.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Possiamo farlo mediante la classe &lt;em&gt;WebPartZoneBase&lt;/em&gt; e, in particolare, utilizzando la property &lt;em&gt;DragDropEnabled(True|False)&lt;/em&gt; che passa il valore alla omonima property della classe &lt;em&gt;WebPartChrome.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/69284.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69284.aspx</guid>
            <pubDate>Wed, 31 Jan 2007 00:04:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/69284.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69284.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/69284.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/69284.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #13</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69281.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Uno dei metodi canonici che il WebPart Framework mette a disposizione per disabilitare verbi &amp;#232; quello di utilizzare l'override sul metodo &lt;em&gt;FilterWebPartVerbs &lt;/em&gt;e passargli la collection di verbi che si vuole abilitare/disabilitare unitamente alla webpart:&lt;/font&gt;&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:5160bc72-f0ab-4d8a-9608-0f7a4813c360" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 484px; padding-top: 0px"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF; "&gt;protected&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;override&lt;/span&gt;&lt;span style="color: #000000; "&gt; WebPartVerbCollection FilterWebPartVerbs(WebPartVerbCollection verbs, WebPart webPart)
{
  WebPartVerbCollection wpvc &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;base&lt;/span&gt;&lt;span style="color: #000000; "&gt;.FilterWebPartVerbs(verbs, webPart);
  &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (WebPartVerb verb &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; wpvc)
  {
     &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (verb &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;this&lt;/span&gt;&lt;span style="color: #000000; "&gt;.Zone.EditVerb)     
        verb.Enabled &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; webPart.AllowEdit;     
  }
  &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; wpvc;
}

&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;ci&amp;#242; che probabilmente non riusciremo a fare, per&amp;#242;, &amp;#232; nascondere il verbo "Edit" per una serie di motivi, primo fra tutti &lt;em&gt;WebPartChrome.ShouldRenderVerb&lt;/em&gt; che sembra "ignorare" l' &lt;em&gt;AllowEdit=False&lt;/em&gt; soltanto per il verbo "Edit".&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Per suggerire un possibile workaround rimando al mio post &lt;A href="http://blogs.ugidotnet.org/fabiocarucci/archive/2006/11/04/53886.aspx"&gt;#3&lt;/a&gt; fermo restando il valido uso del codice suddetto per i restanti verbi.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/69281.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69281.aspx</guid>
            <pubDate>Tue, 30 Jan 2007 23:42:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/69281.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/31/69281.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/69281.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/69281.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #12</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69131.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Quando creiamo verbi custom potremmo avere la necessit&amp;#224; di associare azioni particolari, come ad esempio la funzione di narrazione del testo per utenti disabili, che non prevede form di dialogo o da compilare ma soltanto una attivazione o disattivazione della suddetta funzionalit&amp;#224;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Ebbene, ci&amp;#242; significa che accanto al verbo, nel men&amp;#249; a tendina, dovrebbe comparire anche un simbolo di spunta o un checkbox da selezionare/deselezionare; come fare?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Utilizzando la property &lt;em&gt;WebPartVerb.Checked (true|false)&lt;/em&gt; possiamo giungere al nostro obiettivo. Quando il suo valore &amp;#232; &lt;em&gt;true &lt;/em&gt;accanto al nome del verbo apparir&amp;#224; una checkbox.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Da ricordare, per&amp;#242;, che tale propriet&amp;#224; funziona solo con verbi custom.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/69131.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69131.aspx</guid>
            <pubDate>Tue, 30 Jan 2007 01:55:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/69131.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69131.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/69131.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/69131.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #11</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69123.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Quando lavoriamo con i Verbs, per default nel men&amp;#249; a tendina, accanto ai verbi, non appaiono immagini che rendono pi&amp;#249; user friendly la nostra webpart.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Per ovviare a ci&amp;#242;, mediante l'uso della property &lt;em&gt;ImageUrl &lt;/em&gt;contenuta nella classe &lt;em&gt;WebPartVerb, &lt;/em&gt;possiamo ad esempio creare una zona custom e, ogni webpart che verr&amp;#224; inserita in essa, acquisir&amp;#224; i verbi di default e quelli aggiunti, nonch&amp;#232; le immagini (nei formati soliti) che appariranno accanto ad ogni verbo&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img style="margin: 0px" height="161" hspace="50" src="http://www.fabiocarucci.it/me/WebPartVerbSample.jpg" width="204" vspace="10"&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Ecco un esempio del codice&lt;/font&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:2e6b2e4f-0dee-4560-b6ce-38c1a0cd539f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 511px; padding-top: 0px"&gt;&lt;pre style="background-color:Silver;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF; "&gt;internal&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; CustomWebPartVerb : WebPartVerb
{
   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;const&lt;/span&gt;&lt;span style="color: #000000; "&gt; String _copyImageUrl &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;~/Copy.ico&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;;

   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;internal&lt;/span&gt;&lt;span style="color: #000000; "&gt; CustomWebPartVerb(WebPartEventHandler serverClickHandler) :  
       &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;base&lt;/span&gt;&lt;span style="color: #000000; "&gt;(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;CustomVerb&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, serverClickHandler)
   { }
   
   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;override&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;bool&lt;/span&gt;&lt;span style="color: #000000; "&gt; Enabled
   {
     &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt; { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;base&lt;/span&gt;&lt;span style="color: #000000; "&gt;.Enabled; }
     &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt; { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;base&lt;/span&gt;&lt;span style="color: #000000; "&gt;.Enabled &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; value; }
   }
    
   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;override&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; ImageUrl
   {
      &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt; { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; _copyImageUrl; }
      &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt; { ; }
   }
  }
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/69123.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69123.aspx</guid>
            <pubDate>Mon, 29 Jan 2007 23:21:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/69123.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/30/69123.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/69123.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/69123.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #10</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/27/68865.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Il nostro utente ha aggiunto una webpart in una zona della pagina dal catalogo di webparts che gli abbiamo messo a disposizione. Ha aggiunto dei contenuti all'interno della webpart e, dietro le quinte, glieli abbiamo salvati nello storage di persistenza di AspNet e, avendo l'esigenza di dover lavorare su determinati molteplici contenuti di una webpart, in un nostro db custom.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Il nostro amato utente si rende conto di aver sbagliato pagina e quella webpart non doveva metterla l&amp;#224; bens&amp;#236; in un'altra pagina, quindi clicca sull'apposito men&amp;#249; a tendina della webpart e seleziona "Delete".&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Sappiamo che aspnet elimina dal suo storage la webpart eliminata, ma resta il record nel nostro db custom.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Come si pu&amp;#242; sincronizzare questa operazione?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Semplicemente utilizzando l'evento &lt;em&gt;OnDeleting(EventArgs e)&lt;/em&gt; della webpart in questione che intercetta il "Delete" nel men&amp;#249; a tendina e permette quindi di invocare un nostro metodo che elimina anche il record sul db custom.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/68865.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/27/68865.aspx</guid>
            <pubDate>Sat, 27 Jan 2007 13:36:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/68865.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/27/68865.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/68865.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/68865.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #9</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/21/67858.aspx</link>
            <description>&lt;P&gt;&lt;FONT size=2&gt;Quando vogliamo dare all'utente del nostro sito la possibilit&amp;#224; di esportare una web part in formato xml sappiamo che occorre innanzitutto abilitare l'export dal web.config mediante&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;system.web&gt;&lt;BR&gt;   &lt;webparts  enableExport="true" /&gt;&lt;BR&gt;&lt;sytem.web&gt;&lt;WEBPARTS enableExport="true"&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;In questo modo, tuttavia, se non impostiamo la property ExportMode della web part, l'utente non otterr&amp;#224; l'esportazione a causa del valore di default che &amp;#232; &lt;EM&gt;None&lt;/EM&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Se per&amp;#242; vogliamo che l'esportazione avvenga in maniera parziale, cio&amp;#232; che non tutte le properties vengano esportate, dobbiamo impostare a &lt;EM&gt;NonSensitiveData&lt;/EM&gt; la suddetta property, importante &amp;#232; che nella dichiarazione dell'attributo &lt;EM&gt;[Personalizable] &lt;/EM&gt;ci ricordiamo di passare &lt;EM&gt;true &lt;/EM&gt;come secondo argomento:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;EM&gt;[Personalizable(PersonalizationScope.User, &lt;FONT color=#ff0000&gt;true&lt;/FONT&gt;)]&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;in questo modo le properties della nostra web part che avranno questo secondo argomento verranno escluse dall'esportazione.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/67858.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/21/67858.aspx</guid>
            <pubDate>Sun, 21 Jan 2007 01:13:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/67858.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/21/67858.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/67858.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/67858.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #8</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/10/65795.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Capita, lavorando con WebParts in connessione, che vi siano una o pi&amp;#249; di esse con il ruolo sia di Provider che di Consumer.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;L'effetto negativo che si pu&amp;#242; riscontrare &amp;#232; quello, ovviamente, dei riferimenti circolari; serve quindi un modo per determinare ci&amp;#242; e prendere eventuali contromisure: &lt;em&gt;WebPartTracker.IsCircularConnection.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;La classe WebPartTracker &amp;#232; sealed e ha una property, &lt;em&gt;IsCircularConnection&lt;/em&gt; appunto.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img hspace="50" src="http://www.fabiocarucci.it/me/WebPartTracker.bmp" vspace="10"&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;La suddetta property non fa altro che testare se la WebPart che, unitamente al punto di connessione, abbiamo passato al WebPartTracker ha pi&amp;#249; punti di connessione e, nel caso, restituisce un valore &lt;em&gt;true&lt;/em&gt;; a noi resta da verificare che non vi siano riferimenti circolari.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/65795.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/10/65795.aspx</guid>
            <pubDate>Wed, 10 Jan 2007 16:13:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/65795.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/10/65795.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/65795.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/65795.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #7</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/09/65583.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;Mi rifaccio al mio post &lt;/font&gt;&lt;A href="http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/08/65442.aspx"&gt;&lt;font size="2"&gt;precedente&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; in cui parlo di IWebPartTable.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Se invece di una tabella dovete passare tra webparts provider e consumer una singola riga di dati, utilizzate l'interfaccia &lt;em&gt;IWebPartRow&lt;/em&gt;; il meccanismo &amp;#232; il medesimo, &lt;em&gt;GetRowData&lt;/em&gt; per passare una riga e &lt;em&gt;Schema&lt;/em&gt; per recuperarne i dati.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Non ripeto l'esempio perch&amp;#232; &amp;#232; similissimo al &lt;/font&gt;&lt;A href="http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/08/65442.aspx"&gt;&lt;font size="2"&gt;precedente&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/65583.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/09/65583.aspx</guid>
            <pubDate>Mon, 08 Jan 2007 23:52:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/65583.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/09/65583.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/65583.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/65583.aspx</trackback:ping>
        </item>
        <item>
            <title>L'arte di lavorare con le WebPart - #6</title>
            <link>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/08/65442.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Ringrazio coloro che hanno risposto gentilmente al mio &lt;A title=Poll HREF="/fabiocarucci/archive/2006/12/08/58777.aspx" target="" name=""&gt;Poll&lt;/A&gt;(icino), quindi, augurandovi un 
ottimo 2007 (in fondo siamo ancora all'8 gennaio), proseguo 
con la miniserie in oggetto. &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Vi occorre mettere in comunicazione una webpart che 
contiene una tabella e passare il contenuto ad altre webparts che consumano la 
prima?&lt;/P&gt;
&lt;P&gt;Bene, tutto quello che dovete fare &amp;#232; utilizzare l'interfaccia 
&lt;EM&gt;IWebPartTable; &lt;/EM&gt;essa, sfruttando il meccanismo di connessione del Web 
Part Framework, consente con un metodo - 
&lt;EM&gt;GetTableData(TableCallback tbc)&lt;/EM&gt; &lt;EM&gt;- &lt;/EM&gt;e con una property 
- &lt;EM&gt;Schema&lt;/EM&gt; - di spedire un DataTable verso una o pi&amp;#249; webparts&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public sealed class &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;WebPartProvider : WebPart, IWebPartTable&lt;BR&gt;{&lt;BR&gt;    DataTable _table;&lt;BR&gt;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;WebPartProvider()&lt;BR&gt;    {&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;// codice che crea un DataTable (table), alcune DataColumn&lt;BR&gt;        // e un p&amp;#242; di DataRow&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;}&lt;BR&gt;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;PropertyDescriptorCollection tableSchema&lt;BR&gt;    {&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;get&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;{&lt;BR&gt;            &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;return &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TypeDescriptor.GetProperties(table.DefaultView[0]);&lt;BR&gt;        }&lt;BR&gt;    }&lt;BR&gt;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public void &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;GetTableData(TableCallback tableCallback)&lt;BR&gt;    {&lt;BR&gt;            tableCallback(table.Rows);&lt;BR&gt;    }&lt;BR&gt;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public bool &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;ConnPointON&lt;BR&gt;    {&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;get&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;{&lt;BR&gt;            &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;o = ViewState["ConnPointON"];&lt;BR&gt;            &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;return &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(o != &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;null&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;) ? (&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)o : &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;true&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;;&lt;BR&gt;        }&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;set&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;{&lt;BR&gt;            ViewState["ConnPointON"] = &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;value&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;;&lt;BR&gt;        }&lt;BR&gt;    }&lt;BR&gt;&lt;BR&gt;    [ConnectionProvider("Table", &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;typeof&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(TableProviderConnectionPoint), AllowsMultipleConnections = &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;true&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)]&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;IWebPartTable GetConnectionInterface()&lt;BR&gt;    {&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;return new &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableProviderWebPart();&lt;BR&gt;    }&lt;BR&gt;    &lt;BR&gt;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public class &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableProviderConnPoint : ProviderConnectionPoint&lt;BR&gt;    {&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableProviderConnPoint(....&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;) : &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;base(....&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)&lt;BR&gt;        {&lt;BR&gt;        }&lt;BR&gt;&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public override bool &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;GetEnabled(Control control)&lt;BR&gt;        {&lt;BR&gt;            &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;return &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;((TableProviderWebPart)control).ConnectionPointEnabled;&lt;BR&gt;        }&lt;BR&gt;    }&lt;BR&gt;}&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;Notate la firma di questo metodo &lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&lt;EM&gt;public void &lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&lt;EM&gt;GetTableData(TableCallback tableCallback); 
&lt;/EM&gt;&lt;FONT face=Verdana&gt;TableCallBack &amp;#232; &lt;EM&gt;delegato&lt;/EM&gt; a contenere 
l'indirizzo del metodo che ricever&amp;#224; i dati (per brevit&amp;#224; ho omesso alcuni 
controlli nel codice nonch&amp;#232; firme di metodi) mentre la property &lt;EM&gt;Schema 
&lt;/EM&gt;contiene lo schema, appunto, dei dati da spedire e 
ricevere.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&lt;FONT face=Verdana&gt;Ecco la seconda parte, la webpart consumer invoca il GetTableData 
e, nel RenderContents ne renderizza il contenuto mediante la property 
Schema.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public class &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;WebPartConsumer : WebPart&lt;BR&gt;{&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;private &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;IWebPartTable provider;&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;private &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;ICollection _tableData;&lt;BR&gt;    &lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;private void &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;GetTableData(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;tableData)&lt;BR&gt;    {&lt;BR&gt;      _tableData = (ICollection)tableData;&lt;BR&gt;    }&lt;BR&gt;    &lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;protected override void &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;OnPreRender(EventArgs e)&lt;BR&gt;    {      &lt;BR&gt;        provider.GetTableData(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableCallback(GetTableData));      &lt;BR&gt;    }&lt;BR&gt;    &lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;protected override void &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;RenderContents(HtmlTextWriter writer)&lt;BR&gt;    {      &lt;BR&gt;        PropertyDescriptorCollection props = _provider.Schema;&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;count = 0;&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;if &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(props != &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;null &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&amp;&amp; props.Count &gt; 0 &amp;&amp; _tableData != &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;null&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)&lt;BR&gt;        {&lt;BR&gt;          &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;foreach &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(PropertyDescriptor prop &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;in &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;props)&lt;BR&gt;          {&lt;BR&gt;            &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;foreach &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(DataRow o &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;in &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;_tableData)&lt;BR&gt;            {&lt;BR&gt;              writer.Write(prop.DisplayName + ": " + o[count]);&lt;BR&gt;            }&lt;BR&gt;           &lt;BR&gt;            count = count + 1;&lt;BR&gt;          }&lt;BR&gt;        }              &lt;BR&gt;    }&lt;BR&gt;    &lt;BR&gt;    [ConnectionConsumer("Table")]&lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public void &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;SetConnectionInterface(IWebPartTable provider)&lt;BR&gt;    {&lt;BR&gt;      _provider = provider;&lt;BR&gt;    }&lt;BR&gt;    &lt;BR&gt;    &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public class &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableConsumerConnPoint : ConsumerConnectionPoint&lt;BR&gt;    {&lt;BR&gt;      &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TableConsumerConnPoint(....)&lt;BR&gt;        : &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;base&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(....)&lt;BR&gt;      {&lt;BR&gt;      }    &lt;BR&gt;    } &lt;BR&gt;}&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.3&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO 1.3 (EN) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --&gt;
&lt;img src="http://blogs.ugidotnet.org/FabioCarucci/aggbug/65442.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Fabio Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/08/65442.aspx</guid>
            <pubDate>Mon, 08 Jan 2007 00:40:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/FabioCarucci/comments/65442.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/FabioCarucci/archive/2007/01/08/65442.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/FabioCarucci/comments/commentRss/65442.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/FabioCarucci/services/trackbacks/65442.aspx</trackback:ping>
        </item>
    </channel>
</rss>
