<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22590980</id><updated>2011-12-14T04:53:24.361+01:00</updated><category term='ajax file download PostBackTrigger'/><category term='SqlDataSource IDENTITY'/><title type='text'>DailyNetBlog blog tips .Net framework Asp.Net Vb.Net</title><subtitle type='html'>Questo blog nasce con l'intento di raccogliere news e tips riguardanti il mondo del framework .Net</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22590980.post-568637851043149293</id><published>2010-12-02T16:46:00.002+01:00</published><updated>2010-12-02T17:03:43.625+01:00</updated><title type='text'>AttachDbFilename e SQL Server 2008</title><content type='html'>Se vi dovesse capitare la sventura di voler collegare un database SqlServer express prodotto dal vostro fido  Visual studio 2010, nel deploy di un applicazione web.net su un server che ha installato SqlServer2005, passerete una lunga serie di 5 minuti a chiedervi per quale motivo non vada.&lt;br /&gt;&lt;br /&gt;Questa stringa di connessione vi verrà in aiuto:&lt;br /&gt;&lt;blockquote&gt;"Data Source=server\istanza;AttachDbFilename='|DataDirectory|\database.MDF';Integrated Security=True;"&lt;br /&gt;&lt;/blockquote&gt;Ovviamente modificate le impostazioni di sicurezza secondo i vostri parametri.&lt;br /&gt;Testato su Sql Server 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-568637851043149293?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/568637851043149293/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=568637851043149293' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/568637851043149293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/568637851043149293'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2010/12/attachdbfilename-e-sql-server-2005.html' title='AttachDbFilename e SQL Server 2008'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-2005124169748344947</id><published>2009-05-20T11:34:00.002+02:00</published><updated>2009-05-20T11:39:21.844+02:00</updated><title type='text'>Impossibile visualizzare o creare diagrammi in Microsoft Sql Server 2005</title><content type='html'>Può capitare dopo aver importato un database in Sql Server 2005 che non sia più possibile accedere ai diagrammi.&lt;br /&gt;Tranquilli, non sono andati perduti, è solo un problema di permessi.&lt;br /&gt;Il messaggio di errore è:&lt;br /&gt;&lt;blockquote&gt;Database diagram support objects cannot be installed because this database does&lt;br /&gt;not have a valid owner. To continue, first use the Files page of the Database&lt;br /&gt;Properties dialog box or the ALTER AUTHORIZATION statement to set the database&lt;br /&gt;owner to a valid login, then add the database diagram support objects.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Oppure in italiano:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Impossibile installare gli oggetti di supporto per i diagrammi di database&lt;br /&gt;perchè al database non è associato un proprietario valido per continuare&lt;br /&gt;utilizzare innanzitutto la pagina file della finestra di dialogo proprietà del&lt;br /&gt;database o l'istruzione alther autorization per impostare il proprietario del&lt;br /&gt;database su un account di accesso valido quindi aggiungere gli oggetti di&lt;br /&gt;supporto per i diagrammi di database.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ecco la soluzione tratta da MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/ms186345(SQL.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms186345(SQL.90).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ALTER AUTHORIZATION ON DATABASE::database_name TO "UTENTE"&lt;br /&gt;go&lt;br /&gt;use [database_name]&lt;br /&gt;go&lt;br /&gt;EXECUTE AS USER = N'dbo' REVERT&lt;br /&gt;go&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Questo vi permetterà di ottenere nuovamente accesso ai vostri diagrammi o di crearne di nuovi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-2005124169748344947?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/2005124169748344947/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=2005124169748344947' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/2005124169748344947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/2005124169748344947'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2009/05/impossibile-visualizzare-o-creare.html' title='Impossibile visualizzare o creare diagrammi in Microsoft Sql Server 2005'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-3100420088705596520</id><published>2008-11-18T09:48:00.003+01:00</published><updated>2008-11-18T09:53:23.684+01:00</updated><title type='text'>Asp.Net MasterPages: Link dinamico a file js</title><content type='html'>Quando si utilizzano Master pages può capitare la necessità di linkare file javascript solo in particolari content pages.&lt;br/&gt;&lt;br /&gt;Questa semplice riga(da inserire nel page load) ci viene in aiuto:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;br /&gt;Page.ClientScript.RegisterClientScriptInclude("common", ResolveUrl("js/javascript.js"))&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;In questo modo il client scaricherà il file javascript solo quando serve!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-3100420088705596520?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/3100420088705596520/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=3100420088705596520' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3100420088705596520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3100420088705596520'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/11/aspnet-masterpages-link-dinamico-file.html' title='Asp.Net MasterPages: Link dinamico a file js'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-6158285746516680135</id><published>2008-09-24T18:36:00.003+02:00</published><updated>2008-09-24T18:42:53.469+02:00</updated><title type='text'>Office Outlook 2007 salvare gli allegati di un gruppo email.</title><content type='html'>Se per caso vi fosse successo di ricevere una svariata decina di email con in allegato dei file da salvare ... beh, Outlook non è dalla nostra parte e non ci aiuta nemmeno un pò.&lt;br /&gt;&lt;br /&gt;Fortuna che ci sono le macro!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;Sub SalvaAllegati()&lt;br /&gt;&lt;br /&gt;Dim i As MailItem&lt;br /&gt;For Each i In Application.Explorers.Item(1).Selection&lt;br /&gt;Dim a As Attachment&lt;br /&gt;For Each a In i.Attachments&lt;br /&gt;a.SaveAsFile ("c:\temp\" &amp;amp; a.FileName)&lt;br /&gt;Next&lt;br /&gt;Next&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Create la macro, selezionate le email con gli allegati da recuperare e avviate la macro.&lt;br/&gt;&lt;br /&gt;Andate nella cartella di destinazione e trovere i file salvati!&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-6158285746516680135?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/6158285746516680135/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=6158285746516680135' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6158285746516680135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6158285746516680135'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/09/office-outlook-2007-salvare-gli.html' title='Office Outlook 2007 salvare gli allegati di un gruppo email.'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-4809805014539461312</id><published>2008-04-11T11:51:00.002+02:00</published><updated>2008-04-11T11:59:33.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SqlDataSource IDENTITY'/><title type='text'>SqlDataSource, recuperare l'identità appena inserita</title><content type='html'>Quando si esegue un INSERT INTO attraverso le funzionalità dell'oggetto SqlDataSource, magari collegato a un FormView, può essere molto utile risalire alla chiave appena inserito nella tabella.&lt;br /&gt;Ovviamente mi riferisco a una tabella che abbia come campo chiave un identità.&lt;br /&gt;Ecco come fare:&lt;br /&gt;impostare &lt;em&gt;InsertCommand&lt;/em&gt; del SqlDataSource in questo modo&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;INSERT INTO [TABELLA] ([CAMPI])&lt;br /&gt;VALUES ([@PARAMETRI]);SELECT&lt;br /&gt;@NewID=SCOPE_IDENTITY()&lt;/blockquote&gt;&lt;br /&gt;Aggiungere fra gli &lt;em&gt;InsertParameter&lt;/em&gt;:&lt;br /&gt;&lt;blockquote&gt;Name="NewID" Direction="OUTPUT" Type="Int32"&lt;/blockquote&gt;&lt;br /&gt;Ora, nell'evento &lt;em&gt;Protected Sub SqlDSClient_Inserted&lt;/em&gt; è possibile recuperare il valore:&lt;br /&gt;&lt;blockquote&gt;e.Command.Parameters("@NewID").Value&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-4809805014539461312?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/4809805014539461312/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=4809805014539461312' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/4809805014539461312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/4809805014539461312'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/sqldatasource-recuperare-lidentit.html' title='SqlDataSource, recuperare l&apos;identità appena inserita'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-1346801771051301512</id><published>2008-04-10T09:46:00.001+02:00</published><updated>2008-11-19T08:41:54.357+01:00</updated><title type='text'>Anche A.Einstein faceva il programmatore?</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;La teoria è quando si sa tutto e non funziona niente. La pratica è quando&lt;br /&gt;funziona tutto e non si sa perchè. &lt;/p&gt;&lt;p&gt;Bene o male riusciamo sempre a coadiuvare le&lt;br /&gt;2 cose e non funziona niente e non sappiamo il perchè. &lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Anche A.Einstein faceva il programmatore?&lt;/p&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_Clx0yDDIKsE/R_2_qtGLDKI/AAAAAAAAAAw/-bxoGWMKXkg/s1600-h/Ein.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5187513086181575842" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_Clx0yDDIKsE/R_2_qtGLDKI/AAAAAAAAAAw/-bxoGWMKXkg/s400/Ein.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-1346801771051301512?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/1346801771051301512/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=1346801771051301512' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/1346801771051301512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/1346801771051301512'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/anche-aeinstein-faceva-il-programmatore_10.html' title='Anche A.Einstein faceva il programmatore?'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Clx0yDDIKsE/R_2_qtGLDKI/AAAAAAAAAAw/-bxoGWMKXkg/s72-c/Ein.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-7304798193997325750</id><published>2008-04-09T16:50:00.005+02:00</published><updated>2008-09-04T13:16:55.085+02:00</updated><title type='text'>Asp.Net file Download Confirmation</title><content type='html'>Per verificare che il client scarichi completamente un file dal vostro server, è necessario implementare una pagina di passaggio che legga lo stream del file e lo invii al client.&lt;br /&gt;Durante l'invio è sufficiente verificare che la proprietà Response.IsClientConnected rimanga a True per tutto il tempo necessario.&lt;br /&gt;Ecco un esempio:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        Response.Clear()&lt;br /&gt;        Dim b(1024 * 128) As Byte&lt;br /&gt;        Dim DownLoadAbort As Boolean = False&lt;br /&gt;        Dim f As IO.FileStream = New IO.FileStream("c:\filename.txt", IO.FileMode.Open)&lt;br /&gt;        Response.AddHeader("Content-Disposition", "attachment;filename=filename.txt")&lt;br /&gt;        Response.AddHeader("Content-Length", f.Length.ToString)&lt;br /&gt;        Do While f.Position &lt; f.Length&lt;br /&gt;            f.Read(b, 0, 1024 * 128)&lt;br /&gt;            Response.OutputStream.Write(b, 0, 1024 * 128)&lt;br /&gt;            If Not Response.IsClientConnected Then&lt;br /&gt;                DownLoadAbort = True&lt;br /&gt;                Exit Do&lt;br /&gt;            End If&lt;br /&gt;            Response.Flush()&lt;br /&gt;        Loop&lt;br /&gt;        f.Close()&lt;br /&gt;&lt;br /&gt;        If Not DownLoadAbort Then&lt;br /&gt;            'DOWNLOAD COMPLETED SUCCESFULLY&lt;br /&gt;        Else&lt;br /&gt;        End If&lt;br /&gt;        Response.End()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-7304798193997325750?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/7304798193997325750/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=7304798193997325750' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7304798193997325750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7304798193997325750'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/aspnet-file-download-confirmation.html' title='Asp.Net file Download Confirmation'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-5378636807801032266</id><published>2008-04-07T11:31:00.006+02:00</published><updated>2008-04-07T12:13:37.486+02:00</updated><title type='text'>Importazione di File excel, scoprire la struttura e i nomi dei fogli</title><content type='html'>Per accedere al contenuto dei file Microsoft Excel ci si può molto semplicemente appoggiare all'oggetto data.OledDbConnection&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" &amp;amp;&lt;br /&gt;"Data Source=c:\fileexcel.xls; Extended Properties=Excel&lt;br /&gt;8.0;"&lt;br /&gt;'Connect to the file source&lt;br /&gt;Dim conn As New&lt;br /&gt;System.Data.OleDb.OleDbConnection(strConn)&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;E per leggere il contenuto:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Dim myData As New Data.OleDb.OleDbDataAdapter("SELECT * FROM [foglio1$]",&lt;br /&gt;strConn)&lt;br /&gt;myData.Fill(myDataset)&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;E se ora volessimo visualizzare il contenuto in un gridview:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;GridView1.DataSource = myDataset.Tables(0).DefaultView&lt;br /&gt;GridView1.DataBind()&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Il vero problema è che non sempre si conosce la struttura esatta del file excel, soprattutto quanti fogli (worksheet) ci sono e il loro nome, importante per poter effettuare la SELECT dei dati.&lt;br /&gt;Un approccio potrebbe essere quello di utilizzare gli oggetti .Net per accedere al framework COM di office, soluzione svantaggiosa, obbligherebbe ad avere Office installato sulla macchina, e se si tratta di un web server, potrebbe essere un serio problema.&lt;br /&gt;Approccio più efficace è l'uso delle potenzialità di analisi della struttura di database della OledDBConnection, attraverso il metodo GetOleDbSchemaTable.&lt;br /&gt;In particolare dopo aver aperto la connessione al file excel:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Dim SchemaTable As Data.DataTable&lt;br /&gt;conn.Open()&lt;br /&gt;SchemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New&lt;br /&gt;Object() {Nothing, Nothing, Nothing, Nothing})&lt;br /&gt;conn.Close()&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;e quindi analizzando lo schema:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Dim fogli As New Generic.List(Of String)&lt;br /&gt;For Each row As DataRow In SchemaTable.Rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If row!TABLE_TYPE.ToString = "TABLE" Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fogli.Add(row!TABLE_NAME.ToString())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;Next&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Ecco ottenuto l'elenco dei fogli.&lt;br /&gt;&lt;br /&gt;Per approfondire sull'argomento, consiglio: How To Retrieve Schema Information by Using GetOleDbSchemaTable and Visual Basic .NET &lt;a href="http://support.microsoft.com/kb/309488/en-us"&gt;http://support.microsoft.com/kb/309488/en-us&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-5378636807801032266?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/5378636807801032266/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=5378636807801032266' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/5378636807801032266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/5378636807801032266'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/importazione-di-file-excel-scoprire-la.html' title='Importazione di File excel, scoprire la struttura e i nomi dei fogli'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-9004690682887223313</id><published>2008-04-04T11:38:00.005+02:00</published><updated>2008-04-04T12:08:25.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax file download PostBackTrigger'/><title type='text'>Asp.Net Ajax file Download</title><content type='html'>Ajax dona grandi vantaggi in termini di navigabilità, interattività e user experience alle vostre applicazione web.&lt;br /&gt;Uno dei fattori che è spesso sottovalutato è la diminuzione del traffico generato dalle pagine, in quanto solo una piccola parte della pagina viene inviata dal server al browser.&lt;br /&gt;In pratica evita di dover inviare ogni volta un documento intero, ma solo una parte.&lt;br /&gt;&lt;br /&gt;Di contro, quando ci si trova a dover inviare un documento completo al browser, soprattutto se generato a runtime, sorgono dei problemi.&lt;br /&gt;Se ad esempio nell'evento click di un bottone si genera un file excel &lt;blockquote&gt;&lt;br /&gt;response.ContentType = "application/vnd.ms-excel"&lt;br /&gt;response.AddHeader("Content-Disposition", "attachment; filename=report.xls")&lt;br /&gt;response.write ...&lt;br /&gt;response.end&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Alla pressione del bottone il broser restituirà un messaggio di errore abbastanza chiaro:&lt;br /&gt;&lt;blockquote&gt;Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server&lt;br /&gt;trace is enabled.&lt;/blockquote&gt;&lt;br /&gt;Stiamo inviando al browser qualcosa di inadatto al contesto.&lt;br /&gt;Fortunatamente aggirare il problema è abbastanza semplice:&lt;br /&gt;registrando nei trigger del nostro UpdatePanel un nuovo PostBackTrigger collegato al nostro bottone di download&lt;br /&gt;&lt;blockquote&gt;&amp;lt;asp:updatepanel id="UpdatePanel1" runat="server"&amp;gt;&lt;br /&gt;&amp;lt;triggers&amp;gt;&lt;br /&gt;&amp;lt;asp:postbacktrigger controlid="ControlID"&amp;gt;&lt;br /&gt;&amp;lt;/triggers&amp;gt;&lt;/blockquote&gt;Se invece il vostro controllo fosse generato a runtime, (es: un bottone inserito in GridView) sarà necessario effettuare al registrazione a runtime, dopo che il controllo è stato generato:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;ScriptManager.GetCurrent(Page).RegisterPostBackControl(ImageButton1)&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-9004690682887223313?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/9004690682887223313/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=9004690682887223313' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/9004690682887223313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/9004690682887223313'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/aspnet-ajax-file-download.html' title='Asp.Net Ajax file Download'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-2719324469293660672</id><published>2008-04-03T17:00:00.003+02:00</published><updated>2008-11-19T08:41:54.491+01:00</updated><title type='text'>Sql server, concatenare una riga in una colonne</title><content type='html'>&lt;div&gt;Capita spesso di avere la necessità di estrarre dal database un elenco formato dalla concatenazione delle righe risultanti una query.&lt;br /&gt;Per esempio gli accessori di un veicolo, le sottocategorie di una macrocategoria,ecc.&lt;br /&gt;&lt;br /&gt;Invece di estrarre il recordset e ciclare riga per riga o invece di usare un cursore si può molto più rapidamente:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;declare @property AS varchar(2000)&lt;br /&gt;select @property = COALESCE(@property, '') + description_it + ','&lt;br /&gt;from vwCATPROP where idcategory=1&lt;br /&gt;select @property as property&lt;/blockquote&gt;Ed ecco il risultato:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_Clx0yDDIKsE/R_Tzpk4p0rI/AAAAAAAAAAo/boVq8O74wQk/s1600-h/results.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185036966611767986" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_Clx0yDDIKsE/R_Tzpk4p0rI/AAAAAAAAAAo/boVq8O74wQk/s400/results.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-2719324469293660672?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/2719324469293660672/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=2719324469293660672' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/2719324469293660672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/2719324469293660672'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/04/sql-server-concatenare-una-riga-in-una.html' title='Sql server, concatenare una riga in una colonne'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Clx0yDDIKsE/R_Tzpk4p0rI/AAAAAAAAAAo/boVq8O74wQk/s72-c/results.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-6282374897534811872</id><published>2008-03-27T16:03:00.002+01:00</published><updated>2008-03-27T16:08:16.314+01:00</updated><title type='text'>SQL NULL STRING Concatenazione di stringhe nulle</title><content type='html'>Se vi è capitato di creare una stored procedure che restituisce una colonna concatenando più colonne base, vi sare anche accorti che nel caso in cui uno degli "addendi" della concatenazione è NULL, il risultato è NULL.&lt;br /&gt;Abbastanza ovvio, ma abbastanza noioso come comportamento.&lt;br /&gt;Per cambiare il comportamento della concatenazione è possibile utlizzare questa dichiarazione&lt;br /&gt;&lt;blockquote&gt;SET CONCAT_NULL_YIELDS_NULL OFF;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Fatto! A volte è semplice...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-6282374897534811872?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/6282374897534811872/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=6282374897534811872' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6282374897534811872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6282374897534811872'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/03/sql-null-string-concatenazione-di.html' title='SQL NULL STRING Concatenazione di stringhe nulle'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-3771778929161513821</id><published>2008-01-04T14:58:00.000+01:00</published><updated>2008-01-04T15:03:54.929+01:00</updated><title type='text'>Ridimensionare un immagine mantendendo le proporzioni</title><content type='html'>&lt;p&gt;Capita spesso di dover cambiare le dimensioni di un immagine mantenendo le proporzioni, quella banale funzione che photoshop ci ha abituato a dare per scontata, constraint proportion e via!&lt;/p&gt;&lt;p&gt;Ecco una funzione che vi viene in aiuto:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;Public Function GetNewsize(ByVal OriginalSize As Size, ByVal DesiredSize As Size) As Size&lt;br /&gt;Dim NewSize As Size&lt;br /&gt;'calcolo le nuove dimensioni&lt;br /&gt;Dim nPercentW As Single = DesiredSize.Width / OriginalSize.Width&lt;br /&gt;Dim nPercentH As Single = DesiredSize.Height / OriginalSize.Height&lt;br /&gt;Dim nPercent As Single = IIf(nPercentH &lt; nPercentW, nPercentH, nPercentW)&lt;br /&gt;NewSize = New Size(OriginalSize.Width * nPercent, OriginalSize.Height * nPercent)&lt;br /&gt;'&lt;br /&gt;Return NewSize&lt;br /&gt;End Function&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-3771778929161513821?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/3771778929161513821/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=3771778929161513821' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3771778929161513821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3771778929161513821'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2008/01/ridimensionare-un-immagine-mantendendo.html' title='Ridimensionare un immagine mantendendo le proporzioni'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-7463735212991424116</id><published>2007-12-21T11:54:00.000+01:00</published><updated>2008-01-03T17:15:05.616+01:00</updated><title type='text'>Polling delle connessioni</title><content type='html'>Fra le novità introdotte in .Net cè la gestione delle connessioni integrata nel framework.&lt;br /&gt;In pratica la gestione delle connessioni, Connessione e disconnesione secondo le necessità del software , è compito interno del framework, sollevando il programmatore dal pesante incarico.&lt;br /&gt;Ogni volta che si crea una nuova applicazione, che sia Web.Net o WindowApplcatione, ci si pone il problema di "dove" aprire la connessione, quante aprirne e quale sia il momento migliore per avere il massimo delle prestazioni e il minimo dell'occupazione per il server.&lt;br /&gt;&lt;br /&gt;La miglior abitudine è aprire la connessione ogni qual volta serva e richiuderla subito dopo, sarà il framework a decidere quando aprire e chiudere effettivamente le connessioni per il massimo delle prestazioni.&lt;br /&gt;Uico DICTAT usare sempre la stessa IDENTICA stringa di connessione, altrimenti la funzion di polling non funzionerà correttamente, non riconoscendo la connessione come unica.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-7463735212991424116?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/7463735212991424116/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=7463735212991424116' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7463735212991424116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7463735212991424116'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/12/polling-delle-connessioni.html' title='Polling delle connessioni'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-7411523385710356699</id><published>2007-12-10T12:59:00.000+01:00</published><updated>2007-12-10T13:15:49.307+01:00</updated><title type='text'>Visual Studio 2008 è alle porte!</title><content type='html'>Microsoft organizza una serie di eventi in tutta italia per presentare e illustrare i dettagli della nuova suite di sviluppo basata sul framework .Net.&lt;br /&gt;Da non perdere!&lt;br /&gt;http://www.microsoft.com/italy/launch2008/roadshow/default.mspx&lt;br /&gt;&lt;br /&gt;Per chi invece volesse iniziare da subito a guardare e ascoltare(IN ITALIANO) i dettagli delle nuove funzionalità, può andare al link &lt;br /&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/platform/path/default.mspx&lt;br /&gt;e guardare le registrazioni dei webcast.&lt;br /&gt;&lt;br /&gt;Altrimenti, se volete cominciare a mettere il naso in sharepoint 2007&lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=673DC932-626A-4E59-9DCA-16D685600A51&amp;displaylang=en#filelist&lt;br /&gt;&lt;br /&gt;Chi resta indietro è perduto...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-7411523385710356699?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/7411523385710356699/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=7411523385710356699' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7411523385710356699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/7411523385710356699'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/12/visual-studio-2008-alle-porte.html' title='Visual Studio 2008 è alle porte!'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-6300507384948985328</id><published>2007-11-20T15:12:00.000+01:00</published><updated>2007-11-20T15:57:20.257+01:00</updated><title type='text'>Rendere il proprio blog visibile non è sempre facile</title><content type='html'>Un'informazione è utile quando raggiunge almeno un destinatario.&lt;br /&gt;Pubblicare articoli su di un blog che nessuno conosce non è molto utile!&lt;br /&gt;&lt;br /&gt;Esistono diversi servizi per pubblicizzare il proprio blog, eccone alcuni:&lt;br /&gt;&lt;a href="http://technorati.com/claim/5bfkd7uzj" rel="me"&gt;www.technorati.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogitalia.com"&gt;www.blogitalia.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Altre informazioni interessanti alla pagina&lt;br /&gt;&lt;a href="http://2puntozeropertutti.wordpress.com/2007/08/17/pubblicizza-il-tuo-blog-o-il-tuo-sito/"&gt;2puntozeropertutti&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-6300507384948985328?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/6300507384948985328/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=6300507384948985328' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6300507384948985328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/6300507384948985328'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/11/rendere-il-proprio-blog-visibile-non.html' title='Rendere il proprio blog visibile non è sempre facile'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-1064313354800867631</id><published>2007-10-10T12:56:00.000+02:00</published><updated>2008-11-19T08:41:54.646+01:00</updated><title type='text'>Advanced breackpoint in visual studio net</title><content type='html'>Una nuova funzionalità poco pubblicizzata e quindi poco conosciuta e sfruttata sono i breakpoint condizionali.&lt;br /&gt;&lt;br /&gt;Quando capita di dover debuggare solo in certe condizioni, ad esempio dentro a un ciclo, o solo quando si verifica una particolare condizione, è possibile impostare un breackpoint condizionale, che interrompe l'esecuzione del codice solo all'avverarsi di un particolare condizione.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Inserire il breackpoint alla riga desiderata, right-click sul tondo rosso che compare e selezionare dal menù a tendina "&lt;em&gt;condition&lt;/em&gt;" apparirà questa finestra.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_Clx0yDDIKsE/RwyxQF5p8EI/AAAAAAAAAAc/2J9juvU1s_U/s1600-h/artbp.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5119661766433435714" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_Clx0yDDIKsE/RwyxQF5p8EI/AAAAAAAAAAc/2J9juvU1s_U/s400/artbp.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;é possibile inserire una condizione boleana, ad esempio, il contatore del ciclo sia a 100, oppure digitando una espressione, e selezionando &lt;em&gt;has changed&lt;/em&gt; il breackpoint scatterà solo se il valore è cambiato.&lt;br /&gt;Altre opzioni dei breackpoint:&lt;br /&gt;&lt;em&gt;Hit Count&lt;/em&gt;: il breackpoint si attiva solo all'ennesimo passaggio&lt;br /&gt;&lt;em&gt;Filter&lt;/em&gt;: il breackpoint si attiva solo per particolari condizioni, es: nome della macchina, del thread, id del thread,ecc&lt;br /&gt;&lt;em&gt;When hit&lt;/em&gt;: quando l'esecuzione passa dal breackpoint è possibile eseguire un logging dell'operazione o eseguire una macro di visual studio, decidendo se lasciar proseguire o bloccare l'esecuzione sull'istruzione corrente&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-1064313354800867631?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/1064313354800867631/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=1064313354800867631' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/1064313354800867631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/1064313354800867631'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/10/advanced-breackpoint-in-visual-studio.html' title='Advanced breackpoint in visual studio net'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Clx0yDDIKsE/RwyxQF5p8EI/AAAAAAAAAAc/2J9juvU1s_U/s72-c/artbp.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-383441093988188992</id><published>2007-10-02T16:07:00.000+02:00</published><updated>2007-10-02T16:18:00.350+02:00</updated><title type='text'>Eseguire la propria applicazione da un link</title><content type='html'>Creando particolari chiavi di registro è possibile da un link posizione su una pagina web eseguire la propria applicazione passando parametri.&lt;br /&gt;Esattamente come fa Emule quando si clicca su un link ed2k://filedascaricare.&lt;br /&gt;Create un file di registro con questo contenuto (personalizzatelo secondo le vostre esigenze) e importatelo nel vostro registro di sistema&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE]&lt;br /&gt;@="URL: ESTENSIONE Protocol"&lt;br /&gt;"URL Protocol"=""&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\DefaultIcon]&lt;br /&gt;@="c:\\programmi\\percorso\\programma.exe"&lt;br /&gt;"OldIcon"="c:\\programmi\\percorso\\programma.exe,1"&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell]&lt;br /&gt;@="open"&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell\open]&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell\open\command]&lt;br /&gt;@="\"c:\\programmi\\percorso\\programma.exe\" \"%1\""&lt;br /&gt;"OldDefault"="\"c:\\programmi\\percorso\\programma.exe\" \"%1\""&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Dove "&lt;em&gt;ESTENSIONE&lt;/em&gt;" è il protocollo da associare alla propria applicazione&lt;br /&gt;&lt;br /&gt;A questo punto per verificare che l'operazione sia andata a buon fine aprite internet explorer e come indirizzo impostate "estensione://"&lt;br /&gt;Mentre nei vostri link HTML saranno molto semplicemente &lt;a href="estensione://parametridapassarealprogramma/"&gt;Link al software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-383441093988188992?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/383441093988188992/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=383441093988188992' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/383441093988188992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/383441093988188992'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/10/eseguire-la-propria-applicazione-da-un.html' title='Eseguire la propria applicazione da un link'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-5367360071292621944</id><published>2007-10-02T15:23:00.000+02:00</published><updated>2008-11-19T08:41:54.856+01:00</updated><title type='text'>Aprire file associati nell'istanza corrente</title><content type='html'>Quando la propria applicazione window form è registrata per l'apertura di una tipologia di file è utile aprire i file all'interno di una stessa istanza, anche se il programma è già in esecuzione così da integrarsi alla perfezione con windows.&lt;br /&gt;L'associazione è valida sia per estensioni sia per link es: miolink://&lt;br /&gt;&lt;br /&gt;Al nostro scopo, è necessario che l'applicazione sia definita come single istance; in seguito cliccate sul bottone "View Application Events"&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_Clx0yDDIKsE/RwJHSl5p8CI/AAAAAAAAAAM/s43SRuWwxIo/s1600-h/art1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_Clx0yDDIKsE/RwJHSl5p8CI/AAAAAAAAAAM/s43SRuWwxIo/s400/art1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5116730511383457826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Verrà aggiunto al progetto il file &lt;em&gt;ApplicationEvents.vb&lt;/em&gt;, selezionare dal menu degli eventi la voce StartupNextInstance in questo modo:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_Clx0yDDIKsE/RwJIP15p8DI/AAAAAAAAAAU/Epjw14p32uk/s1600-h/art2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Clx0yDDIKsE/RwJIP15p8DI/AAAAAAAAAAU/Epjw14p32uk/s400/art2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5116731563650445362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il parametro &lt;em&gt;Sender&lt;/em&gt; sarà la nuova istanza e il parametro &lt;em&gt;e&lt;/em&gt; conterrà alcuni dettagli tra cui la command line passata!&lt;br /&gt;&lt;br /&gt;A questo punto abbiamo tutte le informazioni necessarie per aprire il file richiesto nell'istanza corrente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-5367360071292621944?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/5367360071292621944/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=5367360071292621944' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/5367360071292621944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/5367360071292621944'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/10/aprire-file-associati-nellistanza.html' title='Aprire file associati nell&apos;istanza corrente'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Clx0yDDIKsE/RwJHSl5p8CI/AAAAAAAAAAM/s43SRuWwxIo/s72-c/art1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-3244418855436361317</id><published>2007-09-07T12:18:00.000+02:00</published><updated>2007-09-07T12:40:28.966+02:00</updated><title type='text'>Serializzare una classe con eventi</title><content type='html'>Dovento sfruttare i meccanismi di serializzazione interni a vb.net si può incappare in un problema.&lt;br /&gt;Quando la classe da serializzare possiede eventi gestiti da oggetti non serializzabili (es una window form) la serializzazione si blocca.&lt;br /&gt;Tutto nasce dall'impossibilità di dichiarare non serializzabili gli eventi.&lt;br /&gt;&lt;br /&gt;Seguendo le indicazioni da http://www.lhotka.net/WeBlog/CommentView.aspx?guid=776f44e8-aaec-4845-b649-e0d840e6de2c si giunge ad una soluzione :&lt;br /&gt;&lt;br /&gt;Utilizzando la dichiarazione estesa degli eventi si può utilizzare un doppio elenco degli oggetti che gestiscono gli eventi generati della classe, gli oggetti serializzabili e quelli non serializzabili.&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;code&gt;&lt;br /&gt;&lt;NonSerialized()&gt; _&lt;br /&gt;Private mNonSerializableHandlers As New Generic.List(Of EventHandler)&lt;br /&gt;Private mSerializableHandlers As New Generic.List(Of EventHandler)&lt;br /&gt;&lt;br /&gt;  Public Custom Event NameChanged As EventHandler&lt;br /&gt;&lt;br /&gt;    AddHandler(ByVal value As EventHandler)&lt;br /&gt;      If value.Target.GetType.IsSerializable Then&lt;br /&gt;        mSerializableHandlers.Add(value)&lt;br /&gt;      Else&lt;br /&gt;        If mNonSerializableHandlers Is Nothing Then&lt;br /&gt;          mNonSerializableHandlers = _&lt;br /&gt;            New Generic.List(Of EventHandler)()&lt;br /&gt;        End If&lt;br /&gt;        mNonSerializableHandlers.Add(value)&lt;br /&gt;      End If&lt;br /&gt;    End AddHandler&lt;br /&gt;&lt;br /&gt;    RemoveHandler(ByVal value As EventHandler)&lt;br /&gt;      If value.Target.GetType.IsSerializable Then&lt;br /&gt;        mSerializableHandlers.Remove(value)&lt;br /&gt;&lt;br /&gt;      Else&lt;br /&gt;        mNonSerializableHandlers.Remove(value)&lt;br /&gt;      End If&lt;br /&gt;    End RemoveHandler&lt;br /&gt;&lt;br /&gt;    RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;      For Each item As EventHandler In mNonSerializableHandlers&lt;br /&gt;        item.Invoke(sender, e)&lt;br /&gt;      Next&lt;br /&gt;      For Each item As EventHandler In mSerializableHandlers&lt;br /&gt;        item.Invoke(sender, e)&lt;br /&gt;      Next&lt;br /&gt;    End RaiseEvent&lt;br /&gt;  End Event&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In questo modo il problema è aggirato, inutile dire che la sintassi necessaria è decisamente molto estesa, sforzo ripagato dalla serializzazione.&lt;br /&gt;Nel caso in cui ci siano eventi con parametri, è necessario appesantire ulteriormente, utilizzando un delegato:&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;code&gt;&lt;br /&gt;        &lt;NonSerialized()&gt; _&lt;br /&gt;        Private mNonSerializableHandlers As New Generic.List(Of On_Progress)&lt;br /&gt;        Private mSerializableHandlers As New Generic.List(Of On_Progress)&lt;br /&gt;        Public Delegate Sub On_Progress(ByVal status As String, ByVal progress As Integer)&lt;br /&gt;        Public Custom Event Progress As On_Progress&lt;br /&gt;            AddHandler(ByVal value As On_Progress)&lt;br /&gt;                If value.Target.GetType.IsSerializable Then&lt;br /&gt;                    mSerializableHandlers.Add(value)&lt;br /&gt;                Else&lt;br /&gt;                    If mNonSerializableHandlers Is Nothing Then&lt;br /&gt;                        mNonSerializableHandlers = New Generic.List(Of On_Progress)()&lt;br /&gt;                    End If&lt;br /&gt;                    mNonSerializableHandlers.Add(value)&lt;br /&gt;                End If&lt;br /&gt;&lt;br /&gt;            End AddHandler&lt;br /&gt;&lt;br /&gt;            RemoveHandler(ByVal value As On_Progress)&lt;br /&gt;                If value.Target.GetType.IsSerializable Then&lt;br /&gt;                    mSerializableHandlers.Remove(value)&lt;br /&gt;                Else&lt;br /&gt;                    mNonSerializableHandlers.Remove(value)&lt;br /&gt;                End If&lt;br /&gt;            End RemoveHandler&lt;br /&gt;            '&lt;br /&gt;            RaiseEvent(ByVal status As String, ByVal progress As Integer)&lt;br /&gt;                For Each item As On_Progress In mNonSerializableHandlers&lt;br /&gt;                    item.Invoke(status, progress)&lt;br /&gt;                Next&lt;br /&gt;                For Each item As On_Progress In mSerializableHandlers&lt;br /&gt;                    item.Invoke(status, progress)&lt;br /&gt;                Next&lt;br /&gt;            End RaiseEvent&lt;br /&gt;        End Event&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In questo modo è possibile serializzare e deserializzare la nostra classe&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;code&gt;&lt;br /&gt;'SERIALIZE&lt;br /&gt;Dim FS As New System.IO.FileStream("c:\prova.wbp", FileMode.OpenOrCreate)&lt;br /&gt;Dim BinFormatter As New BinaryFormatter&lt;br /&gt;'&lt;br /&gt;BinFormatter.Serialize(FS, myClassWithEvents)&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;CODE&gt;&lt;br /&gt;'DESERIALIZE&lt;br /&gt;Dim FS As New System.IO.FileStream(file, FileMode.Open)&lt;br /&gt;Dim BinFormatter As New BinaryFormatter&lt;br /&gt;'&lt;br /&gt;RETURN BinFormatter.Deserialize(FS)&lt;br /&gt;&lt;/CODE&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-3244418855436361317?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/3244418855436361317/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=3244418855436361317' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3244418855436361317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/3244418855436361317'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2007/09/serializzare-una-classe-con-eventi.html' title='Serializzare una classe con eventi'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-114725515778529729</id><published>2006-05-10T11:55:00.000+02:00</published><updated>2006-05-10T12:00:26.236+02:00</updated><title type='text'>Ottenere il codice HTML da un webcontrol</title><content type='html'>A volte può fare comodo ricavare il codice html prodotto da un qualsiasi webcontrol, sia un customcontrol o un controllo nativo .net come ad esempio il gridview.&lt;br /&gt;Ad esempio se si volesse inviare via email il risultato del binding di un gridview si può ricorrere a questa semplice funzione&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;br /&gt;&lt;CODE&gt;&lt;br /&gt;Private Function GetControlRendererHTML(ByVal Control As Control) As String&lt;br /&gt;&lt;br /&gt;Dim SB As New StringBuilder()&lt;br /&gt;Dim SW As New System.IO.StringWriter(SB)&lt;br /&gt;Dim htmlTW As New HtmlTextWriter(SW)&lt;br /&gt;Control.RenderControl(htmlTW)&lt;br /&gt;&lt;br /&gt;Dim HTML As String = SB.ToString()&lt;br /&gt;&lt;br /&gt;Return HTML&lt;br /&gt;End Function&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;&lt;/blockquote &gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-114725515778529729?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/114725515778529729/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=114725515778529729' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114725515778529729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114725515778529729'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2006/05/ottenere-il-codice-html-da-un.html' title='Ottenere il codice HTML da un webcontrol'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-114189638711914733</id><published>2006-03-09T10:18:00.000+01:00</published><updated>2006-03-09T10:27:50.383+01:00</updated><title type='text'>GridView Events BUG!  RowDeleting event firing twice</title><content type='html'>Condizioni: Gridview con una colonna CommandField per l'eliminazione, con l'opzione ButtonType="Image".&lt;br /&gt;In alcuni casi, l'evento "RowDeleting" viene eseguito 2 volte di fila, creando non pochi problemi.&lt;br /&gt;Infatti se nel gridview è presente una sola riga, la doppia esecuzione porta a un errore di indice; se invece sono presente 2 o più righe, queste vengono cancellate 2 per click.&lt;br /&gt;Il bug, riconosciuto anche da Microsoft, non ha al momento un fix ufficiale, probabilmente verrà corretto in un prossimo service pack.&lt;br /&gt;Ci sono 2 soluzioni ufficiose:&lt;br /&gt;a) utilizzare un ButtonType="Button" o ButtonType="Link"&lt;br /&gt;b) al posto della colonna CommandField utilizzare una colonna TemplateField in questo modo&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;asp:TemplateField&amp;gt;&lt;br /&gt;                                        &amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;                                            &amp;lt;asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="False" CommandName="Delete"&lt;br /&gt;                                                ImageUrl="~/admin/images/delete.gif" AlternateText="Cancella" OnClientClick="return confirm('Eliminare dal carrello?')" /&amp;gt;&lt;br /&gt;                                        &amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;                                    &amp;lt;/asp:TemplateField&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-114189638711914733?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/114189638711914733/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=114189638711914733' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114189638711914733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114189638711914733'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2006/03/gridview-events-bug-rowdeleting-event.html' title='GridView Events BUG!  RowDeleting event firing twice'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-114042896291229290</id><published>2006-02-20T10:40:00.000+01:00</published><updated>2006-02-20T10:50:45.486+01:00</updated><title type='text'>Form facilities</title><content type='html'>Alcune nuove funzionalità integrate in asp.net 2 rendono più usabili i form di inserimento dati senza dover fare ricorso a scritp Js aggiuntivi.&lt;br /&gt;Attraverso l'uso dei panel è possibile impostare diversi default button a zone diverse di una pagina.&lt;br /&gt;Classico esempio, la form di imputazione dati per effettuare il log in e la textbox per effettuare una ricerca.&lt;br /&gt;Se sono sulla stessa pagina, quando si preme invio all'interno di un textbox verrà eseguito l'evento associato ad uno dei due bottone in input.&lt;br /&gt;Attraverso l'uso della proprietà defaultbutton dell'oggetto form e dell'oggetto panel, è possibile personalizzare il comportamento.&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;form defaultbutton=“button1” runat=“server”&amp;gt;&lt;br /&gt;&amp;lt;asp:button id=“button1” text=“bottone1” runat=“server”/&amp;gt;&lt;br /&gt;&amp;lt;asp:panel defaultbutton=“button2” runat=“server”&amp;gt;&lt;br /&gt;&amp;lt;asp:textbox id=“cerca” runat=“server”/&amp;gt;&lt;br /&gt;&amp;lt;asp:button id=“button2” runat=“server”/&amp;gt;&lt;br /&gt;&amp;lt;/asp:panel&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-114042896291229290?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/114042896291229290/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=114042896291229290' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114042896291229290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114042896291229290'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2006/02/form-facilities.html' title='Form facilities'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22590980.post-114016682506945707</id><published>2006-02-17T09:57:00.000+01:00</published><updated>2006-02-17T13:01:30.153+01:00</updated><title type='text'>Formattazione dei campi in un gridview</title><content type='html'>Per poter utilizzare con successo la formattazione all'interno di una colonna di un Gridview è necessario impostare la proprietà htmlencode=false e impostare il formato voluto:&lt;br /&gt;&lt;blockquote style="background-color:whitesmoke;padding:5px;"&gt;&lt;code&gt;&lt;br /&gt;        &amp;lt;asp:boundfield sortexpression="DATA INI" headertext="Data Inizio" datafield="DATAINI"&amp;gt;HtmlEncode=falseDataFormatString="{0:dd/MM/yyyy}"&lt;br /&gt;&amp;lt;/asp:boundfield&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22590980-114016682506945707?l=dailynetblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dailynetblog.blogspot.com/feeds/114016682506945707/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22590980&amp;postID=114016682506945707' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114016682506945707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22590980/posts/default/114016682506945707'/><link rel='alternate' type='text/html' href='http://dailynetblog.blogspot.com/2006/02/formattazione-dei-campi-in-un-gridview.html' title='Formattazione dei campi in un gridview'/><author><name>K.</name><uri>http://www.blogger.com/profile/09674274088765865258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
