<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Zubrowka's blog</title>
	<link>http://www.zubrowkait.com</link>
	<description></description>
	<pubDate>Tue, 30 Jun 2009 09:57:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>fr</language>
			<item>
		<title>[ASP.NET]Implémentation d’un singleton partagé dans le cache d’une web application</title>
		<link>http://www.zubrowkait.com/?p=25</link>
		<comments>http://www.zubrowkait.com/?p=25#comments</comments>
		<pubDate>Mon, 03 Nov 2008 14:51:41 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[ASP.net]]></category>

		<category><![CDATA[cache]]></category>

		<category><![CDATA[dictionary]]></category>

		<category><![CDATA[dotnet]]></category>

		<category><![CDATA[double check]]></category>

		<category><![CDATA[singleton]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Aujourd’hui je vous présente la dernière chose intéressante que j’ai développé, il s’agit d’un dictionnaire permettant le chargement de données à la demande. En effet ce système permet de monter des données en mémoire pour tous les utilisateurs. Je m’explique, lors du lancement de l’application, notre dictionnaire est vide. Un utilisateur demande l’accès à une [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial">Aujourd’hui je vous présente la dernière chose intéressante que j’ai développé, il s’agit d’un dictionnaire permettant le chargement de données à la demande. En effet ce système permet de monter des données en mémoire pour tous les utilisateurs. Je m’explique, lors du lancement de l’application, notre dictionnaire est vide. Un utilisateur demande l’accès à une certaine ressource, nous la montons donc en mémoire et cela pour tous les utilisateurs. Cela à pour but de minimiser les accès base tout en montant une fois pour toute des informations communes. Pour cela, deux design patterns ont été implémentés : l’un classique, le singleton et l’autre un peu plus exotique, le double check. Le pattern double check permet de vérifier que personne n’écrit dans notre dictionnaire lorsque nous souhaitons y écrire.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial" lang="EN-GB">Singleton :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: 1pt; border-color: windowtext; border-style: solid; padding: 1pt"> </p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">namespace</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> appli.transerse<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB">{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">public</span> <span style="color: blue">class</span> <span style="color: #2b91af">CacheDictionary<o:p></o:p></span></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">private</span> <span style="color: #2b91af">Cache</span> _cache;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">private</span> <span style="color: blue">static</span> <span style="color: #2b91af">CacheDictionary</span> INSTANCE = <span style="color: blue">null</span>;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>     </span><span>   </span><span style="color: blue">private</span> System.Collections.Generic.<span style="color: #2b91af">Dictionary</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">string</span>&gt; _dictionnary;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">public</span> <span style="color: #2b91af">Cache</span> Cache<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">get</span> { <span style="color: blue">return</span> _cache; }<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">set</span> { _cache = <span style="color: blue">value</span>; }<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: #2b91af">CacheDictionary</span> getInstance()<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>       </span><span> </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">if</span> (INSTANCE == <span style="color: blue">null</span>)<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{ <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>INSTANCE = <span style="color: blue">new</span> <span style="color: #2b91af">CacheDictionary</span>(); <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">return</span> INSTANCE;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: #2b91af">CacheDictionary</span> setInstance(<span style="color: #2b91af">CacheDictionary</span> aht) <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>INSTANCE = aht;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">return</span> INSTANCE;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">private</span> CacheDictionary() <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_dictionnary = <span style="color: blue">new</span> System.Collections.Generic.<span style="color: #2b91af">Dictionary</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">string</span>&gt;();<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">public</span> <span style="color: blue">string</span> GetContent(<span style="color: blue">string</span> title) <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>          </span><span>  </span><span style="color: blue">string</span> myContent;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">bool</span> IsExisting = INSTANCE._dictionnary.TryGetValue(title, <span style="color: blue">out</span> myContent);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">if</span> (IsExisting)<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span><span style="color: blue">return</span> myContent;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">else</span> <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span><span style="color: blue">lock</span> (INSTANCE._dictionnary);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span><o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>IsExisting = INSTANCE._dictionnary.TryGetValue(title, <span style="color: blue">out</span> myContent);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">if</span> (!IsExisting)<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>myContent = <span style="color: #2b91af">HelpTextManager</span>.GetText(title, <span style="color: blue">null</span>);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>               </span><span> </span>INSTANCE._dictionnary.ContainsKey(title);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>INSTANCE._dictionnary.Add(title, myContent);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">return</span> myContent;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">void</span> Flush(<span style="color: #2b91af">String</span> key, <span style="color: #2b91af">Object</span> item, <span style="color: #2b91af">CacheItemRemovedReason</span> reason) <o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'">{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: #2b91af">Cache</span> buffer = <span style="color: #2b91af">CacheDictionary</span>.getInstance().Cache;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: #2b91af">CacheDictionary</span>.setInstance(<span style="color: blue">null</span>);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: #2b91af">CacheDictionary</span>.getInstance().Cache = buffer;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>InsertCache();<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">void</span> InsertCache()<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: #2b91af">CacheDictionary</span>.getInstance().Cache.Insert(<span style="color: #a31515">&#8220;HelpText&#8221;</span>, <span style="color: #2b91af">CacheDictionary</span>.getInstance(), <span style="color: blue">null</span>, <span style="color: #2b91af">Cache</span>.NoAbsoluteExpiration, <span style="color: blue">new</span> <span style="color: #2b91af">TimeSpan</span>(0, 0, 30), <span style="color: #2b91af">CacheItemPriority</span>.Default, <span style="color: blue">new</span> <span style="color: #2b91af">CacheItemRemovedCallback</span>(appli.transerse.<span style="color: #2b91af">CacheDictionary</span>.Flush));<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>}<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial">La méthode GetContent permet de récupérer les données de l’objet. Si les données ne sont pas présentes, on va les chercher dans la base de données et on les insère dans le dictionnaire de l’objet.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial">La méthode Flush est appelée lors du renouvellement du cache de l’application, elle récupère le Context.Cache et détruit l’instance de l’objet existante puis appèle la methode InsertCache pour pousser le nouvel objet dans le cache.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial">Création de l’instance est mise en cache au lancement de l’application dans le fichier Global.asax :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p style="padding-top: 1pt; padding-right: 4pt; padding-bottom: 1pt; padding-left: 4pt; border-width: 1pt; border-color: windowtext; border-style: solid"> </p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">void</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> Application_Start(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>appli.transerse.<span style="color: #2b91af">CacheDictionary</span>.getInstance().Cache = Context.Cache;<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>Context.Cache.Insert(<span style="color: #a31515">&#8220;cachetitle&#8221;</span>, appli.transerse.<span style="color: #2b91af">CacheDictionary</span>.getInstance(),<span style="color: blue">null</span>,<span style="color: #2b91af">Cache</span>.NoAbsoluteExpiration,<span style="color: blue">new</span> <span style="color: #2b91af">TimeSpan</span>(0,0,30),<span style="color: #2b91af">CacheItemPriority</span>.Default,<span style="color: blue">new</span> <span style="color: #2b91af">CacheItemRemovedCallback</span>(appli.transerse.<span style="color: #2b91af">CacheDictionary</span>.Flush));<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span></span><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial">Implémentation pour la récupération des donnés :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial"><o:p> </o:p></span></p>
<p style="padding-top: 1pt; padding-right: 4pt; padding-bottom: 1pt; padding-left: 4pt; border-width: 1pt; border-color: windowtext; border-style: solid"> </p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: #2b91af" lang="EN-GB">CacheDictionary</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> aht = <span style="color: #2b91af">CacheDictionary</span>.setInstance((<span style="color: #2b91af">CacheDictionary</span>)Cache[<span style="color: #a31515">&#8220;cachetitle &#8220;</span>]);<o:p></o:p></span></p>
<p style="border-width: initial; border-color: initial; border-style: none; padding: 0cm" class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">aht.GetContent(<span style="color: #a31515">&#8220;my_key&#8221;</span>) ;</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p></o:p></span></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=25&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_25" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=25</wfw:commentRss>
		</item>
		<item>
		<title>[ASP.net] Coolite, ExtJS pour ASP.net</title>
		<link>http://www.zubrowkait.com/?p=24</link>
		<comments>http://www.zubrowkait.com/?p=24#comments</comments>
		<pubDate>Mon, 22 Sep 2008 08:06:41 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[ASP.net]]></category>

		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=24</guid>
		<description><![CDATA[

  

Après avoir découvert ExtJS, un Framework JavaScript à la fois beau et puissant, je me suis mis à la recherche d’un équivalent pour ASP.net. Mes premières recherches sont tombées sur des projets plus ou moins bancales mais dont l’initiative est tout de même à saluer. Il y à de cela, une semaine j’ai [...]]]></description>
			<content:encoded><![CDATA[<p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{color:purple; 	text-decoration:underline; 	text-underline:single;} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]-->
<p class="MsoNormal"><span style="font-family: Arial">Après avoir découvert ExtJS, un Framework JavaScript à la fois beau et puissant, je me suis mis à la recherche d’un équivalent pour ASP.net. Mes premières recherches sont tombées sur des projets plus ou moins bancales mais dont l’initiative est tout de même à saluer. Il y à de cela, une semaine j’ai découvert un projet très actif lancé par une société canadienne. Celui-ci à pour but d’encapsuler un à un les composants ExtJS dans des contrôles utilisateurs. Aussi, la mise en place d’un layout complexe devient un jeu d’enfant, pas une ligne de JavaScript n’est nécessaire ! Autre avantage, cette librairies est disponible sous deux licences un OpenSource (GPLv3) et l’autre commerciale.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: Arial">Voici le site où la librairie est téléchargeable : <a href="http://www.coolite.com/">www.coolite.com</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: Arial">Un petit aperçu :</span></p>
<p class="MsoNormal"><img src="/wordpress/coolite.jpg" height="auto" width="400" align="left" /></p>
<p class="MsoNormal"><span style="font-family: Arial"><span> </span><o:p></o:p></span></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=24&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_24" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=24</wfw:commentRss>
		</item>
		<item>
		<title>[.net][ASP.net][AJAX] Réalisation d’un menu déroulant à l’aide de l’AjaxToolkit</title>
		<link>http://www.zubrowkait.com/?p=23</link>
		<comments>http://www.zubrowkait.com/?p=23#comments</comments>
		<pubDate>Wed, 06 Aug 2008 08:04:35 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[ASP.net]]></category>

		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=23</guid>
		<description><![CDATA[


  

Il est possible en détournant légèrement l’utilisation du DropDownExtender de créer un menu déroulant sans avoir  à écrire la moindre ligne de JavaScript.
Au final cette solution s’avère extrêmement rapide à mètre en place et le tout sans aucune difficulté particulière.
Pour cela nous devons commencer par ajouter le traditionnel ScriptManager à notre page.
&#160;
&#60;asp:scriptmanager ID=&#8221;MyScriptManager&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C02%5Cclip_filelist.xml" rel="File-List" />
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C02%5Cclip_editdata.mso" rel="Edit-Time-Data" /><!--[if !mso]><br />
<style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style>
<p> <![endif]--><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Il est possible en détournant légèrement l’utilisation du DropDownExtender de créer un menu déroulant sans avoir  à écrire la moindre ligne de JavaScript.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Au final cette solution s’avère extrêmement rapide à mètre en place et le tout sans aucune difficulté particulière.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Pour cela nous devons commencer par ajouter le traditionnel ScriptManager à notre page.</span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">scriptmanager</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-US"> <span style="color: red">ID</span><span style="color: blue">=&#8221;MyScriptManager&#8221;</span> <span style="color: red">runat</span><span style="color: blue">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">scriptmanager</span><span style="color: blue">&gt;</span></span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Nous ajoutons ensuite un label ainsi qu’un panel.</span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">Label</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-US"> <span style="color: red">ID</span><span style="color: blue">=&#8221;MyLabel&#8221;</span> <span style="color: red">Text</span><span style="color: blue">=&#8221;Header du menu&#8221;</span> <span style="color: red">runat</span><span style="color: blue">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Label</span><span style="color: blue">&gt;</span></span><span style="font-size: 12pt; font-family: 'Times New Roman'" lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-US">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-US">Panel</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-US"> <span style="color: red">ID</span><span style="color: blue">=&#8221;MyPanel&#8221;</span> <span style="color: red">runat</span><span style="color: blue">=&#8221;server&#8221;&gt;</span></span><span style="font-size: 12pt; font-family: 'Times New Roman'" lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green">&lt;!&#8211; On Pourra rajouter ici le contenu du menu &#8211;&gt;</span><span style="font-size: 12pt; font-family: 'Times New Roman'"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&lt;/</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">Panel</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&gt;</span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Il ne nous reste plus qu’à ajouter le DropDownExtender et à le customiser. C’est donc ici que nous allons supprimer l’effet « DropDown » afin de réaliser un menu propre.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Originellement, lors d’un passage de la souris sur le label nous aurions eu le résultat suivant :<o:p></o:p></span></p>
<p class="MsoNormal"><img src="/wordpress/ddajax.jpg" /></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Voici donc le code pour le DropDown :</span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">cc1</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">dropdownextender</span><span style="font-size: 10pt; font-family: 'Courier New'"> <span style="color: red">runat</span><span style="color: blue">=&#8221;server&#8221;</span><span>                 </span><span>                </span><span style="color: red">ID</span><span style="color: blue">=&#8221;dde&#8221;</span><span>                                                                     </span><span style="color: red"></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span style="color: red">TargetControlID</span><span style="color: blue">=&#8221;</span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"> MyLabel<span> &#8220;</span></span><span style="font-size: 10pt; font-family: 'Courier New'"><span>                                                                  </span><span style="color: red">DropDownControlID</span><span style="color: blue">=&#8221;</span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"> MyPanel<span> &#8220;</span></span><span style="font-size: 10pt; font-family: 'Courier New'"><span>                                                                 </span><span style="color: red">HighlightBackColor</span><span style="color: blue">=&#8221;Transparent&#8221;</span><span>                                                                 </span><span style="color: red">HighlightBorderColor</span><span style="color: blue">=&#8221;Transparent&#8221;</span><span>                                            </span><span>                    </span><span style="color: red">DropArrowBackColor</span><span style="color: blue">=&#8221;Transparent&#8221;</span><span>                                                                 </span><span style="color: red">DropArrowWidth</span><span style="color: blue">=&#8221;0&#8243;</span><span>                                                               </span><span style="color: red">DropArrowImageUrl</span><span style="color: blue">=&#8221;../Design/img/pixel_tranparent.png&#8221;&gt;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">&lt;/</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">cc1</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">dropdownextender</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">L’astuce consiste donc à mettre toute les couleurs à « Transparent » de remplacer l’image<span>  </span>de la flèche par un pixel de couleur transparente.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Aussi, le TargetControlID n’est pas nécessairement une un label dans le cas ci-dessous il s’agit d’une image.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'">Avec un peu de CSS on peu arriver au résultat suivant :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><img src="/wordpress/result.jpg" /></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=23&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_23" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=23</wfw:commentRss>
		</item>
		<item>
		<title>[.net][ASP.net]Création d’un DataList Paginé</title>
		<link>http://www.zubrowkait.com/?p=22</link>
		<comments>http://www.zubrowkait.com/?p=22#comments</comments>
		<pubDate>Wed, 30 Jul 2008 12:52:11 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[ASP.net]]></category>

		<category><![CDATA[Arraylist]]></category>

		<category><![CDATA[datalist]]></category>

		<category><![CDATA[objectdatasource]]></category>

		<category><![CDATA[pagination]]></category>

		<category><![CDATA[user control]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[

  

Le datalist, au même titre que le repeater, est un composant très intéressant : 
-il permet un binding de données très simple 
-Présente des fonctionnalités de personnalisation très avancés.
Seulement, un de ces (rares) inconvénients et de ne pas supporter la pagination. C’est pourquoi j’ai entrepris depuis quelques heures la création d’un user control basé [...]]]></description>
			<content:encoded><![CDATA[<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C03%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1515460963; 	mso-list-type:hybrid; 	mso-list-template-ids:1896487756 -1036491052 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;} @list l0:level1 	{mso-level-start-at:0; 	mso-level-number-format:bullet; 	mso-level-text:-; 	mso-level-tab-stop:36.0pt; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} ol 	{margin-bottom:0cm;} ul 	{margin-bottom:0cm;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Le datalist, au même titre que le repeater, est un composant très intéressant : <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">-il permet un binding de données très simple <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">-Présente des fonctionnalités de personnalisation très avancés.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Seulement, un de ces (rares) inconvénients et de ne pas supporter la pagination. C’est pourquoi j’ai entrepris depuis quelques heures la création d’un user control basé sur un datalist, et supportant une pagination (pour le moment simpliste).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">L’objectif<span>  </span>étant d’avoir un composant capable de paginer automatiquement un ObjectDataSource.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Pour cela le composant<span>  </span>est constitué d’un DataList et de deux boutons. Les propriétés accessibles sont la DataSource ainsi que la taille de page.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Au niveau du fichier .ascx rien de particulier n’est à signaler.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Le composant fonctionne sur un mode itératif : <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt"><!--[if !supportLists]--><span style="font-size: 11pt; font-family: 'Times New Roman'"><span>-<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">          </span></span></span><!--[endif]--><span style="font-size: 11pt; font-family: 'Times New Roman'">A partir de l’objet que retourne l’ObjectDataSource (IEnumerable) on créer une ArratList. J’ai fais ce choix afin de pouvoir rapidement accéder à un indice précis.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt"><!--[if !supportLists]--><span style="font-size: 11pt; font-family: 'Times New Roman'"><span>-<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">          </span></span></span><!--[endif]--><span style="font-size: 11pt; font-family: 'Times New Roman'">Ensuite l’itération sur l’ArrayList retourne une List contenant les objets d’une seule page. Cette List est passée comme DataSource du DataList.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Le tout étant de recommencer la dernière opération pour un changement de page.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">La méthode pour conserver l’index courant n’est vraiment pas élégante (passage de l’index en session). Il serait probablement plus judicieux de passer par une variable de viewstate…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Au final nous avons le fichier suivant :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'; color: red">Note : AppliDocument est une classe métier de l’application qui à servi pour l’exemple.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">public</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: blue">partial</span> <span style="color: blue">class</span> <span style="color: #2b91af">dlPaged</span> : System.Web.UI.<span style="color: #2b91af">UserControl<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">private</span> <span style="color: #2b91af">IEnumerable</span> _dataSource;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">private</span> <span style="color: blue">int</span> _pageSize;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">private</span> <span style="color: #2b91af">ArrayList</span> _iterateList = <span style="color: blue">new</span> <span style="color: #2b91af">ArrayList</span>();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">private</span> <span style="color: blue">int</span> _currentPage = 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">private</span> <span style="color: blue">int</span> _nbPage;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">public</span> <span style="color: blue">int</span> PageSize<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">get</span> { <span style="color: blue">return</span> _pageSize; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">set</span> { _pageSize = <span style="color: blue">value</span>; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">public</span> <span style="color: #2b91af">IEnumerable</span> DataSource<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">get</span> { <span style="color: blue">return</span> _dataSource; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">set</span> { _dataSource = <span style="color: blue">value</span>; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>  </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> Page_Load(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">if</span> (IsPostBack)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_currentPage = (<span style="color: blue">int</span>)Session[<span style="color: #a31515">&#8220;indexpage&#8221;</span>];<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">this</span>.getSource();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>dl.DataSource = <span style="color: blue">this</span>.paginateSource((_currentPage * _pageSize));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>dl.DataBind();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_nbPage = (<span style="color: blue">int</span>)<span style="color: #2b91af">Math</span>.Ceiling((<span style="color: blue">decimal</span>)_iterateList.Count % _pageSize)+1;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>lbPreced.Visible = <span style="color: blue">true</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>lbSuiv.Visible = <span style="color: blue">true</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">else</span> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>Session[<span style="color: #a31515">&#8220;indexpage&#8221;</span>] = 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>lbPreced.Visible = <span style="color: blue">false</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>lbSuiv.Visible = <span style="color: blue">false</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_nbPage = 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> lbPreced_Click(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">if</span> (_currentPage &gt; 0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_currentPage&#8211;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>Session[<span style="color: #a31515">&#8220;indexpage&#8221;</span>] = _currentPage;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>dl.DataSource = <span style="color: blue">this</span>.paginateSource((_currentPage * _pageSize));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>dl.DataBind();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>     </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>       </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> lbSuiv_Click(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">if</span> (_currentPage &lt;= _nbPage)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>_currentPage++;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>Session[<span style="color: #a31515">&#8220;indexpage&#8221;</span>] = _currentPage;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: green"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>dl.DataSource = <span style="color: blue">this</span>.paginateSource((_currentPage*_pageSize));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>dl.DataBind();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>       </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span></span><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>  </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span><span style="color: blue">private</span> <span style="color: blue">void</span> getSource() <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">foreach</span> (<span style="color: #2b91af">AppliDocument</span> doc <span style="color: blue">in</span> _dataSource)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>_iterateList.Add(doc);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span><span style="color: blue">private</span> <span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">AppliDocument</span>&gt; paginateSource(<span style="color: blue">int</span> index) <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">int</span> lastIndex = index + _pageSize;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">AppliDocument</span>&gt; toReturn = <span style="color: blue">new</span> <span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">AppliDocument</span>&gt;();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">while</span><span style="font-size: 10pt; font-family: 'Courier New'"> (index &lt; lastIndex)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">if</span> (index &lt; _iterateList.Count)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>toReturn.Add((<span style="color: #2b91af">AppliDocument</span>)_iterateList[index]);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span></span><span style="font-size: 10pt; font-family: 'Courier New'">index++;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">else</span> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: blue">break</span>; <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>Session[<span style="color: #a31515">&#8220;index&#8221;</span>] = IndexControl(lastIndex) ;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">return</span> toReturn;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Au final, il ne reste plus qu’à intégrer le composant dans un page : pour cela, il suffit d’enregistrer le composant et de l’ajouter dans la page :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Pour l’enregistrement :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background: yellow none repeat scroll 0% 0%; font-size: 10pt; font-family: 'Courier New'; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="background: yellow none repeat scroll 0% 0%; font-size: 10pt; font-family: 'Courier New'; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&lt;%</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">@</span><span style="font-size: 10pt; font-family: 'Courier New'"> <span style="color: #a31515">Register</span> <span style="color: red">Src</span><span style="color: blue">=&#8221;~/dlPaged.ascx&#8221;</span> <span style="color: red">TagName</span><span style="color: blue">=&#8221;pagedDl&#8221;</span><span>  </span><span style="color: red">TagPrefix</span><span style="color: blue">=&#8221;zubrowkalib&#8221;</span><span style="background: yellow none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">%&gt;</span></span><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Pour l’ajout :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&lt;zubrowkalib:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">pagedDl</span><span style="font-size: 10pt; font-family: 'Courier New'"> <span style="color: red">PageSize</span><span style="color: blue">=&#8221;2&#8243;</span> <span style="color: red">ID</span><span style="color: blue">=&#8221;dlpage&#8221;</span> <span style="color: red">runat</span><span style="color: blue">=&#8221;server&#8221;/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'">Enfin, il faut binder la DataSource au composant : il faut pour cela affecter la propriété DataSource du composant lors de l’évènement nécessitant le binding et dans le Page_Load de la page.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">this</span><span style="font-size: 10pt; font-family: 'Courier New'">.dlpage.DataSource = <span style="color: #2b91af">AppliDocumentManager</span>.GetDocumentsByKeyword(txtSearch.Text);</span><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: 'Times New Roman'"><o:p> </o:p></span></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=22&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_22" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=22</wfw:commentRss>
		</item>
		<item>
		<title>[.net]Synchronisation de fichiers pour Windows Mobile</title>
		<link>http://www.zubrowkait.com/?p=21</link>
		<comments>http://www.zubrowkait.com/?p=21#comments</comments>
		<pubDate>Sun, 01 Jun 2008 20:54:09 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[OpenNETCF.Desktop.Communication]]></category>

		<category><![CDATA[RAPI]]></category>

		<category><![CDATA[Smartphone]]></category>

		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=21</guid>
		<description><![CDATA[
	Apres plusieurs mois d’absence, partiels et projets oblige, je reviens pour vous présenter une méthode de synchronisation de fichier entre PC et Windows Mobile. Pour cela j’utilise la libraire OpenNETCF.Desktop.Communication, celle-ci permet l’accès et la modification de fichiers depuis une Workstation. Il vous faut donc inclure à votre projet la dll et ensuite utiliser  l’objet [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p class="MsoNormal"><span style="white-space: pre" class="Apple-tab-span">	</span>Apres plusieurs mois d’absence, partiels et projets oblige, je reviens pour vous présenter une méthode de synchronisation de fichier entre PC et Windows Mobile. Pour cela j’utilise la libraire OpenNETCF.Desktop.Communication, celle-ci permet l’accès et la modification de fichiers depuis une Workstation. Il vous faut donc inclure à votre projet la dll et ensuite utiliser<span>  </span>l’objet RAPI.</p>
<p class="MsoNormal">Celui-ci dispose de quelques méthodes intéressantes telles que la détection de la présence d’un Smartphone, la récupération d’informations propres au téléphone, ou encore la possibilité de créer des processus.</p>
<p class="MsoNormal">Le code que je vous propose permet la synchronisation de plusieurs fichiers afin d’en récupérer ou transférer la dernière version.</p>
<p class="MsoNormal">Ce code est basé sur la date de modification d’un fichier.</p>
<p class="MsoNormal">&nbsp;</p>
<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">public</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: blue">static</span> <span style="color: blue">class</span> <span style="color: #2b91af">RAPISynchronisation<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">string</span> biDirectionalSynchro(List&lt;<span style="color: blue">string</span>&gt; FileNames)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p><br />
</o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: green">//Params<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>RAPI synchroObject = <span style="color: blue">new</span> RAPI();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: #2b91af">DateTime</span> localLastAcces = <span style="color: #2b91af">DateTime</span>.Now;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: #2b91af">DateTime</span> smartphoneLastAcces = <span style="color: #2b91af">DateTime</span>.Now;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: #2b91af">DateTime</span><span style="font-size: 10pt; font-family: 'Courier New'"> checker = smartphoneLastAcces;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">string</span> strPathWorkstationFile = <span style="color: #a31515">&#8220;Repertoire du dossier local&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: green">//Vérification de la présence de l’appareil<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">if</span> (!synchroObject.DevicePresent)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span> </span><span>       </span>{ <span style="color: blue">return</span> <span style="color: #a31515">&#8220;Appareil non-détecté, verifiez que l’appareil est bien connecté&#8221;</span>; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">else<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: green">//Synchro<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">foreach</span> (<span style="color: blue">string</span> fileName <span style="color: blue">in</span> FileNames)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: green">//Connexion au SmartPhone<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>synchroObject.Connect();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: green">//Vérification de l’existance du dossier smartphone<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: blue">if</span> (!synchroObject.DeviceFileExists(<span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;</span>))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">try<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span><span style="color: green">//Création du dossier smartphone<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span>synchroObject.CreateDeviceDirectory(<span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;</span>);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">catch</span> (<span style="color: #2b91af">Exception</span> ex)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span><span style="color: blue">return</span> <span style="color: #a31515">&#8220;Impossible de créer le dossier cible&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: green">//Récupération des dates de modification des fichiers<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: blue">if</span> (synchroObject.DeviceFileExists(<span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>+ fileName))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>smartphoneLastAcces = synchroObject.GetDeviceFileTime(<span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>          </span>+ fileName, RAPI.RAPIFileTime.LastModifiedTime);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>              </span><span>  </span><span style="color: blue">if</span> (File.Exists(strPathWorkstationFile + fileName))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>localLastAcces = File.GetLastWriteTime(strPathWorkstationFile + fileName);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: green">//Copie Local -&gt; SmartPhone<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: blue">if</span> (localLastAcces &gt;= smartphoneLastAcces || smartphoneLastAcces == checker)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">try<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span>synchroObject.CopyFileToDevice(strPathWorkstationFile, <span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>+ fileName, <span style="color: blue">true</span>);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">catch</span> (RAPIException ex)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span><span style="color: blue">return</span> <span style="color: #a31515">&#8220;Impossible de copier sur le périphérique cible&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">catch</span> (IOException ex)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                          </span><span style="color: green">//Copie SmartPhone -&gt; Local<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span><span style="color: blue">else</span> <span style="color: blue">if</span> (localLastAcces &lt; smartphoneLastAcces &amp;&amp; smartphoneLastAcces != checker)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">try<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span>synchroObject.CopyFileFromDevice(strPathWorkstationFile<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">+ fileName, <span style="color: #a31515">@&#8221;\Smartphone_Destination\&#8221;</span> + fileName);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span><span style="color: blue">catch</span> (<span style="color: #2b91af">Exception</span> ex)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                        </span><span style="color: blue">return</span> <span style="color: #a31515">&#8220;Impossible de copier sur le disque local&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>                </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">return</span> <span style="color: #a31515">&#8220;Syncronisation Réalisée&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">}</span><span><o:p></o:p></span></p>
<p><!--EndFragment--></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=21&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_21" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=21</wfw:commentRss>
		</item>
		<item>
		<title>[Linux][OSX]Synchronisation de dossier via rsync</title>
		<link>http://www.zubrowkait.com/?p=20</link>
		<comments>http://www.zubrowkait.com/?p=20#comments</comments>
		<pubDate>Fri, 07 Mar 2008 13:14:57 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSX]]></category>

		<category><![CDATA[cron]]></category>

		<category><![CDATA[launchd]]></category>

		<category><![CDATA[rsync]]></category>

		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=20</guid>
		<description><![CDATA[La commande Rsync permet de synchroniser deux dossiers. En effet il peut vous être nécessaire de réaliser une synchronisation de vos données avec un serveur ceci afin de palier a tout crash de système. Bien évidemment, un script couplé avec un cron (ou launchd sous OSX) vous permettra d’automatiser cette tache et ainsi de ne [...]]]></description>
			<content:encoded><![CDATA[<p>La commande Rsync permet de synchroniser deux dossiers. En effet il peut vous être nécessaire de réaliser une synchronisation de vos données avec un serveur ceci afin de palier a tout crash de système. Bien évidemment, un script couplé avec un cron (ou launchd sous OSX) vous permettra d’automatiser cette tache et ainsi de ne plus vous soucier de la copie de vos dossier sensibles.Le script ci dessous permet de synchroniser un dossier local avec un partage SMB monté. Aussi, il loggue dans un fichier toutes las actions réalisées par rsync.D’autre formats pour la commande rsync sont disponible (en fonction du type d’endroit ou ce trouve le dossier miroir) n’hésitez pas à consulter le man !#On vérifie que le partage est bien monté<br />
if [ -d /path/montage/SMB];<br />
then<br />
echo &#8220;Syncronisation&#8230;&#8221;<br />
#Exécution de rsync( –delete supprime les fichier du dossier cible non présents sur le #dossier source)<br />
time=`rsync -a &#8211;delete –v /path/dossier/a/synchroniser/ /path/montage/SMB /dossiercible/`<br />
#echo &#8220;Syncro Ok!&#8221;<br />
header=`date +%Y/%m/%d-%H:%M:%S`&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
#Ecriture du logecho<br />
&#8220;$header $time&#8221;&gt;&gt;/path/dossier/a/synchroniser/logsynchro.log<br />
#fi<br />
KillAll Terminal</p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=20&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_20" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=20</wfw:commentRss>
		</item>
		<item>
		<title>[.net]Fonction de hashage MD5 et SHA1</title>
		<link>http://www.zubrowkait.com/?p=18</link>
		<comments>http://www.zubrowkait.com/?p=18#comments</comments>
		<pubDate>Thu, 14 Feb 2008 11:08:24 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=18</guid>
		<description><![CDATA[ 
   
Une petite méthode bien utile notamment pour le stockage de mot de passe dans une base de donnée ou autre&#8230;Seulement, un petit conseil utilisez  plutôt le SHA1, en effet il présente moins de collisions que le MD5  et à l&#8217;avantage de ne pas encore avoir de RainBow Tables pour plus d&#8217;explication [...]]]></description>
			<content:encoded><![CDATA[<p> <!--StartFragment--></p>
<p class="MsoNormal"><span class="Apple-style-span" style="font-size: 21px"> <!--StartFragment-->  </span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Georgia">Une petite méthode bien utile notamment pour le stockage de mot de passe dans une base de donnée ou autre&#8230;Seulement, un petit conseil utilisez  plutôt le SHA1, en effet il présente moins de collisions que le MD5  et à l&#8217;avantage de ne pas encore avoir de RainBow Tables pour plus d&#8217;explication : <a href="http://antoine.media-box.net/index.php?post/le-hash-md5-n-est-pas-sur"><span style="color: #4a2486">cliquez ici.</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Georgia">Quoi qu&#8217;il en soit, voici une méthode permettant à partir d&#8217;une chaine de caractères de retourner son hash (MD5 ou SHA1). <o:p></o:p></span></p>
<p class="MsoNormal"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>   </span></span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>     </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">string</span> getHash(<span style="color: blue">string</span> textToHash)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">byte</span>[] buffer = System.Text.<span style="color: #2b91af">Encoding</span>.Default.GetBytes(textToHash);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">try<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: green">//Choisissez ici le type de hashage<span>      </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB">//MD5<span>           </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>System.Security.Cryptography.<span style="color: #2b91af">MD5CryptoServiceProvider</span> check = <span style="color: blue">new</span> System.Security.Cryptography.<span style="color: #2b91af">MD5CryptoServiceProvider</span>();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: green">//Ou SHA1<span>          </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>System.Security.Cryptography.<span style="color: #2b91af">SHA1CryptoServiceProvider</span> check = <span style="color: blue">new</span> System.Security.Cryptography.<span style="color: #2b91af">SHA1CryptoServiceProvider</span>();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">byte</span>[] hashedByte = check.ComputeHash(buffer);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">string</span> hashedString = <span style="color: #a31515">&#8220;&#8221;</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: green">//Contruction de la chaine hashée<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">foreach</span> (<span style="color: blue">byte</span> a <span style="color: blue">in</span> hashedByte)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span><span style="color: blue">if</span> (a &lt; 16)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                    </span>hashedString += <span style="color: #a31515">&#8220;0&#8243;</span> + a.ToString(<span style="color: #a31515">&#8220;X&#8221;</span>);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span><span style="color: blue">else<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                    </span>hashedString += a.ToString(<span style="color: #a31515">&#8220;X&#8221;</span>);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">return</span> hashedString;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">catch<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: blue">throw</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>}</span></p>
<p><!--EndFragment-->      <!--EndFragment--></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=18&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_18" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=18</wfw:commentRss>
		</item>
		<item>
		<title>[ASP][.net][AJAX]Utilisation des fonctionnalités du GridView</title>
		<link>http://www.zubrowkait.com/?p=17</link>
		<comments>http://www.zubrowkait.com/?p=17#comments</comments>
		<pubDate>Wed, 13 Feb 2008 09:16:46 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[ASP.net]]></category>

		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=17</guid>
		<description><![CDATA[
&#160;
	Avant tout, aussi bonne soit la qualité du Framework .net, il y subsiste quelques bug… notamment au niveau des ObjectDataSource et GridView, d’ou l’intérêt de mon article ;-). En effet, après avoir passé de nombreuse heures (enfin 4) à essayer d’implémenter un GridView (notamment ces fonctionnalités avancés) avec une source de type ObjectDataSource j’ai trouvé la [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Times; line-height: normal" class="Apple-style-span"></span></p>
<p style="padding: 0.5em; background-color: #ffffff; font-family: Georgia,'Times New Roman',Times,serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.3em; font-size-adjust: none; font-stretch: normal">&nbsp;</p>
<p class="MsoNormal"><span style="white-space: pre" class="Apple-tab-span">	</span>Avant tout, aussi bonne soit la qualité du Framework .net, il y subsiste quelques bug… notamment au niveau des ObjectDataSource et GridView, d’ou l’intérêt de mon article ;-). En effet, après avoir passé de nombreuse heures (enfin 4) à essayer d’implémenter un GridView (notamment ces fonctionnalités avancés) avec une source de type ObjectDataSource j’ai trouvé la solution grâce au MSDN, seulement ce « bug » m’a longuement bloqué et la solution à été trouvé dans un recoin d’un forum américain (ne me demandez pas lequel j’étais tellement content d’être débloqué que j’en ai oublié de le book marker).</p>
<p class="MsoNormal">Enfin tout cela pour dire que<span>  </span>je vais vous proposer de réaliser un GridView avec une fonction « Supprimer » le tout sans rechargement de la page grâce à updatePanel (vive l’ajax)</p>
<p class="MsoNormal">Pour cela, vous allez avoir besoin d’une classe statique (de préférence) réalisant l’accès à la base de données,<span>  </span>listant une table et pouvant en supprimer de lignes !</p>
<p class="MsoNormal">Ensuite, il vous faudra un objet pour récupérer les données et les afficher dans le GridView.</p>
<p class="MsoNormal">Pour la page .aspx, on ce retrouve avec quelque chose qui ressemble à cela :</p>
<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green">&lt;!&#8211; On met le tout dans un update panel histoire de voir nos suppressions ce réaliser directement<span>  </span>&#8211;&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">UpdatePanel</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: red">ID</span><span style="color: blue">=”UpdatePanel”</span> <span style="color: red">runat</span><span style="color: blue">=”server”&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">ContentTemplate</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>   </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span> </span><span style="color: green">&lt;!&#8211; Ici le gridView (a génération automatique des colonnes peut être à true) &#8211;&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">GridView</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: red">id</span><span style="color: blue">=”GridView”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                  </span><span style="color: red">runat</span><span style="color: blue">=”server”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                  </span><span style="color: red">datasourceid</span><span style="color: blue">=”ObjectDataSource”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                  </span><span style="color: red">autogeneratedeletebutton</span><span style="color: blue">=”true”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                  </span><span style="color: red">autogeneratecolumns</span><span style="color: blue">=”false”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                  </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: red">datakeynames</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">=”ID</span><span style="font-size: 10pt; font-family: 'Courier New'"> <span style="color: red">“</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>          </span><span style="color: blue">&lt;</span><span style="color: #a31515">columns</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green">&lt;!&#8211; Si la génération est automatique ces lignes seront générés automatiquement &#8211;&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span> </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">&lt;</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">asp</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">:</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515" lang="EN-GB">boundfield</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: red">headertext</span><span style="color: blue">=”Identifiant</span> <span style="color: red">de</span> <span style="color: red">l’utilisateur”</span> <span style="color: red">datafield</span><span style="color: blue">=”ID”</span> <span style="color: blue">/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">boundfield</span> <span style="color: red">headertext</span><span style="color: blue">=”Login</span> <span style="color: red">de</span> <span style="color: red">l’utilisateur”</span> <span style="color: red">datafield</span><span style="color: blue">=”StrUserLogin”</span> <span style="color: blue">/&gt;</span><span>      </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>          </span><span style="color: blue">&lt;/</span><span style="color: #a31515">columns</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">GridView</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                   </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Label</span> <span style="color: red">ID</span><span style="color: blue">=”lblError”</span> <span style="color: red">runat</span><span style="color: blue">=”server”&gt;&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">Label</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">&lt;/</span><span style="color: #a31515">ContentTemplate</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">UpdatePanel</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span> </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">objectdatasource</span> <span style="color: red">id</span><span style="color: blue">=”ObjectDataSource”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                              </span><span style="color: red">runat</span><span style="color: blue">=”server”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                              </span><span style="color: red">selectmethod</span><span style="color: blue">=”GetUsers”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                              </span><span style="color: red">deletemethod</span><span style="color: blue">=”DelUser”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                              </span><span style="color: red">ondeleting</span><span style="color: blue">=”UserDeleting”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span>                          </span><span style="color: red">ondeleted</span><span style="color: blue">=”UserDeleted”<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                              </span><span style="color: red">typename</span><span style="color: blue">=”SQLManager”&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>          </span><span style="color: blue">&lt;</span><span style="color: #a31515">deleteparameters</span><span style="color: blue">&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">parameter</span> <span style="color: red">name</span><span style="color: blue">=”userID”</span> <span style="color: red">type</span><span style="color: blue">=”Int32″</span> <span style="color: blue">/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>          </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&lt;/</span><span style="font-size: 10pt; font-family: 'Courier New'; color: #a31515">deleteparameters</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span><span style="color: blue">&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">objectdatasource</span><span style="color: blue">&gt;</span></span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">Pour le code behind, on ce retrouve avec quelque chose comme ceci :</p>
<p class="MsoNormal">&nbsp;</p>
<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">public</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> <span style="color: blue">partial</span> <span style="color: blue">class</span> <span style="color: #2b91af">ListeUsers</span> : System.Web.UI.<span style="color: #2b91af">Page<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> Page_Load(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> UserDeleting(<span style="color: blue">object</span> source, <span style="color: #2b91af">ObjectDataSourceMethodEventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>IDictionary paramsFromPage = e.InputParameters;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">if</span> (paramsFromPage[<span style="color: #a31515">&#8220;ID&#8221;</span>] != <span style="color: blue">null</span>)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span></span><span style="font-size: 10pt; font-family: 'Courier New'">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span><span style="color: green">//On récupère le paramètre de la ligne<span>         </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue" lang="EN-GB">int</span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"> userID = <span style="color: #2b91af">Int32</span>.Parse(paramsFromPage[<span style="color: #a31515">&#8220;ID&#8221;</span>].ToString());<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>           </span><span> </span></span><span style="font-size: 10pt; font-family: 'Courier New'; color: green">//On supprime tous les paramètre présents puis on ajoute le nouveau<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'; color: green"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB">paramsFromPage.Clear();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>paramsFromPage.Add(<span style="color: #a31515">&#8220;userID&#8221;</span>, userID);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span><span style="color: blue">protected</span> <span style="color: blue">void</span> UserDeleted(<span style="color: blue">object</span> source, <span style="color: #2b91af">ObjectDataSourceStatusEventArgs</span> e)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>    </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span><span style="color: blue">if</span> (e.Exception != <span style="color: blue">null</span>)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>        </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span><span style="color: blue">if</span> (e.Exception.InnerException <span style="color: blue">is</span> <span style="color: #2b91af">Exception</span>)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>lblError.Text = e.Exception.InnerException.Message;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>                </span>e.ExceptionHandled = <span style="color: blue">true</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'" lang="EN-GB"><span>            </span></span><span style="font-size: 10pt; font-family: 'Courier New'">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>        </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><span>    </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 'Courier New'">}</span></p>
<p class="MsoNormal">Mais voilà comme ceci le code ne fonctionne pas, il s’agit du bug du Framework 2.0, vous devrier voir apparaître un message d’erreur du style MAC viewstate regarder la clé &lt;machinekey&gt; si vous utiliser le clustering… la grande classe quoi</p>
<p class="MsoNormal">La solution est donc de désactiver le viewstate pour la page via la directive de page :</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///D:%5Cprofiles%5Cemartine%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Font Definitions */  @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:9.0pt; 	mso-bidi-font-size:12.0pt; 	font-family:Verdana; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]><br />
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span style="background: yellow none repeat scroll 0% 0%; font-size: 10pt; font-family: 'Courier New'; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">&lt;%</span><span style="font-size: 10pt; font-family: 'Courier New'; color: blue">@</span><span style="font-size: 10pt; font-family: 'Courier New'"> <span style="color: #a31515">Page</span> <span style="color: red">Language</span><span style="color: blue">=&#8221;C#&#8221;</span> <span style="color: red">MasterPageFile</span><span style="color: blue">=&#8221;~/MasterPage.master&#8221;</span> <span style="color: red">AutoEventWireup</span><span style="color: blue">=&#8221;true&#8221;</span> <span style="color: red">CodeFile</span><span style="color: blue">=&#8221;ListeUsers.aspx.cs&#8221;</span> <span style="color: red">Inherits</span><span style="color: blue">=&#8221;ListeUsers&#8221;</span> <span style="color: red">EnableEventValidation</span><span style="color: blue">=&#8221;false&#8221;</span> <span style="color: red">viewStateEncryptionMode</span> <span style="color: blue">=&#8221;Never&#8221;</span><span style="background: yellow none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">%&gt;</span></span></p>
<p class="MsoNormal">L’avantage de du GridView par rapport au Repeater et qu’il est bien plus facile et rapide à mettre en place !</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p><!--EndFragment--></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=17&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_17" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=17</wfw:commentRss>
		</item>
		<item>
		<title>[Linux][OSX]Monter des partages SMB au demarrage sans message d&#8217;erreur</title>
		<link>http://www.zubrowkait.com/?p=16</link>
		<comments>http://www.zubrowkait.com/?p=16#comments</comments>
		<pubDate>Mon, 04 Feb 2008 09:35:55 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSX]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[launchd]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[lingon]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[samba]]></category>

		<category><![CDATA[script]]></category>

		<category><![CDATA[smb]]></category>

		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=16</guid>
		<description><![CDATA[Apres de longues semaines d&#8217;absences, je reviens pour cette fois présenter un article sur le montage de partage SMB sous Leopard. J&#8217;ai remarqué une certaine faiblesse de Leopard dans le montage des partages SMB, en effet, soit on les monte manuellement (pas de problement dans ce cas là), soit on realise le montage à l&#8217;ouverture [...]]]></description>
			<content:encoded><![CDATA[<p>Apres de longues semaines d&#8217;absences, je reviens pour cette fois présenter un article sur le montage de partage SMB sous Leopard. J&#8217;ai remarqué une certaine faiblesse de Leopard dans le montage des partages SMB, en effet, soit on les monte manuellement (pas de problement dans ce cas là), soit on realise le montage à l&#8217;ouverture de session et c&#8217;est ici que cela coince! Si le partage est accessible, pas de souci, mais si il ne l&#8217;est pas on à droit a un splendide message d&#8217;erreur! Alors si comme moi, vous utilisez aussi bien votre laptop au travail, et chez vous et que vous possedez de partages SMB sur les deux reseaux, vous serez ravi de savoir que le script que je propose, vous monte automatiquement sur le bureau vos partages accéssibles, et supprime les raccourcis lorsque ceux-ci ne sont plus accésibles.</p>
<p>Mais me direz vous, avoir le terminal qui s&#8217;ouvre au démarrage c&#8217;est un peu moyen, aussi, il est possible d&#8217;utiliser launchd.</p>
<p>Launchd est un daemon unifié remplaçant init, rc, init.d, script rc.d, SystemStarter, inetd, xinetd, ATD, crond et watchdogd.</p>
<p>Pour plus de renseignements la dessus : <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/launchd.8.html">cliquez ici</a></p>
<p>Aussi, il existe des interfaces simple permettant d&#8217;utiliser cette fonctionnalité je vous propose d&#8217;utiliser <a href="http://lingon.sourceforge.net/">Lingon</a></p>
<p>Une fois votre service créé, il s&#8217;executera à l&#8217;ouverture de session sans afficher de terminal et sans afficher de message d&#8217;erreur!</p>
<p>Et pour finir, voici le script permettant de monter un partage, il faut bien sur l&#8217;adapter selon vos besoin, reseaux etc&#8230;</p>
<p>Bien sur n&#8217;hésitez pas à me faire part de vos probleme et améliorations avec ce script</p>
<p>#!/bin/sh<br />
#<br />
host=&#8221;X.X.X.X&#8221;<br />
#<br />
# Path pour le desktop<br />
#<br />
desktop=&#8221;/Users/nom_user/Desktop/&#8221;<br />
#<br />
#<br />
# Share 1 Name<br />
#<br />
shr1=&#8221;Share name&#8221;<br />
#<br />
#<br />
#<br />
#<br />
echo &#8220;Recherche de partage SMB ($host )&#8221;<br />
#<br />
#<br />
# On teste l&#8217;existance des hotes par un ping<br />
#<br />
outp=`ping -c 1 $host | grep &#8220;0% packet loss&#8221;`<br />
#<br />
#<br />
# Création des dossiers et montage des partages<br />
#<br />
# suppression des dossiers si l&#8217;on ne monte pas de lecteur<br />
#<br />
#<br />
if [ &#8220;$outp&#8221; = &#8220;1 packets transmitted, 1 packets received, 0% packet loss&#8221; ]; then<br />
#<br />
echo &#8220;Trouvé $host, montage du partage&#8221;<br />
#<br />
# Share 1<br />
#<br />
dir1=${desktop}${shr1}<br />
#<br />
if [ ! -d &#8220;$dir1&#8243; ]; then<br />
#<br />
# Pas de dossier, on le créer<br />
#<br />
echo &#8220;Création du point de montage: $dir1&#8243;;<br />
#<br />
mkdir &#8220;$dir1&#8243;<br />
#<br />
else<br />
#<br />
echo &#8220;Point de montage existant: $dir1&#8243;<br />
#<br />
fi<br />
#<br />
if [ -d &#8220;$dir1&#8243; ]; then<br />
#<br />
echo &#8220;Montage&#8221;<br />
#<br />
mount_smbfs //login:password@${host}/nom_du_partage ${desktop}/${shr1}<br />
fi<br />
#<br />
#<br />
dir1=${desktop}${shr1}<br />
#<br />
if [ ! -d &#8220;$dir1&#8243; ]; then<br />
#<br />
# Ne trouve pas le dossier, ne fait rien<br />
#<br />
echo &#8220;Pas de montage inutilisées pour: $dir1&#8243;<br />
#<br />
else<br />
#<br />
echo &#8220;Trouvé point de montage inutilisées: $dir1&#8243;<br />
#<br />
echo &#8220;Suppréssion&#8230;&#8221;<br />
#<br />
rmdir &#8220;$dir1&#8243;<br />
#<br />
fi<br />
#<br />
else<br />
echo &#8220;Impossible d&#8217;acceder à : $host&#8221;<br />
#<br />
fi</p>
<p>#Attention, la dernière ligne ferme tous les terminaux en cours!!!<br />
#<br />
#KillAll Terminal</p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=16&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_16" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=16</wfw:commentRss>
		</item>
		<item>
		<title>[.net]Faire de beaux WinForms</title>
		<link>http://www.zubrowkait.com/?p=15</link>
		<comments>http://www.zubrowkait.com/?p=15#comments</comments>
		<pubDate>Fri, 18 Jan 2008 13:54:18 +0000</pubDate>
		<dc:creator>Emilien Martinez</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[libraires]]></category>

		<category><![CDATA[Office2007]]></category>

		<category><![CDATA[winforms]]></category>

		<guid isPermaLink="false">http://www.zubrowkait.com/?p=15</guid>
		<description><![CDATA[Voici deux librairies vous permettant de realiser de belles interfaces, la première est gratuite et permet de réaliser des interfaces &#8220;de type&#8221; Office 2007, la seconde étant plus complète mais payante.
Une capture d&#8217;application réalisées avec :
-Krypton:

-DevelopperExperience

Vous pouvez donc telecharger ces librairies sur le site de l&#8217;editeur:
Krypton
DevelopperExperience
Share This
]]></description>
			<content:encoded><![CDATA[<p>Voici deux librairies vous permettant de realiser de belles interfaces, la première est gratuite et permet de réaliser des interfaces &#8220;de type&#8221; Office 2007, la seconde étant plus complète mais payante.</p>
<p>Une capture d&#8217;application réalisées avec :</p>
<p>-Krypton:</p>
<p><img src="http://www.zubrowkait.com/wordpress/dls/krypton.JPG" height="auto" width="300" /></p>
<p>-DevelopperExperience</p>
<p><img src="http://www.zubrowkait.com/wordpress/dls/devex.JPG" height="auto" width="300" /></p>
<p>Vous pouvez donc telecharger ces librairies sur le site de l&#8217;editeur:<a href="http://www.componentfactory.com/products.php"></a></p>
<p><a href="http://www.componentfactory.com/products.php">Krypton</a></p>
<p><a href="http://www.devexpress.com/Downloads/NET/DXperience/">DevelopperExperience</a></p>
<p class="akst_link"><a href="http://www.zubrowkait.com/?p=15&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_15" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zubrowkait.com/?feed=rss2&amp;p=15</wfw:commentRss>
		</item>
	</channel>
</rss>
