<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Manitra.net</title>
	<atom:link href="http://www.manitra.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.manitra.net/blog</link>
	<description>Ideas on C# .NET</description>
	<lastBuildDate>Wed, 01 Feb 2012 13:45:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Configurer Free Mobile sur Windows Mobile 6.1 pour Internet et MMS</title>
		<link>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-windows-mobile-6-1-internet-mms/</link>
		<comments>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-windows-mobile-6-1-internet-mms/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 13:43:24 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Tous les jours]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=321</guid>
		<description><![CDATA[Suite aux questions relatives aux téléphones Windows Mobile et Free Mobile sur mon post au sujet de Windows Phone, je crée un nouveau post à ce sujet. Si vous venez d’insérer votre carte SIM sur votre Windows Mobile, et que votre ligne est activée, vous vous êtes surement rendu compte que ni les mms, ni internet ne [...]]]></description>
			<content:encoded><![CDATA[<p>Suite aux questions relatives aux téléphones Windows Mobile et <a href="http://mobile.free.fr/">Free Mobile</a> sur mon post au sujet de <a href="http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-sur-windows-phone-7-5-mango-pour-internet-et-mms/">Windows Phone</a>, je crée un nouveau post à ce sujet.</p>
<p>Si vous venez d’insérer votre carte SIM sur votre Windows Mobile, et que votre ligne est activée, vous vous êtes surement rendu compte que ni les mms, ni internet ne fonctionnait. Voici donc les étapes à suivre pour configurer votre Windows Mobile. L&#8217;exemple concerne samsung player addict SGHI900 et m&#8217;a été souflé par Bernard (bernard, une url ? <img src='http://www.manitra.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) .</p>
<h3>Configuration pour internet et les MMS pour WM 6.1</h3>
<p>Paramères/ connexions :</p>
<ul>
<li>ajouter un nouvelle connexion modem</li>
<li>nom de connexion : free</li>
<li>modem : Ligne cellulaire (GPRS, 3G)</li>
<li>nom point d’accès : Free</li>
<li>laisser le reste vide</li>
</ul>
<p>puis onglet avancé :</p>
<ul>
<li>Sélectionner des réseaux</li>
<li>nouveau … mmsfree</li>
</ul>
<p>avec une nouvelle connexion modem</p>
<ul>
<li>nom de connexion : mmsfree</li>
<li>modem : Ligne cellulaire (GPRS, 3G)</li>
<li>nom point d’accès : mmsfree</li>
<li>domain:mms.free.fr</li>
<li>laisser le reste vide</li>
</ul>
<p>puis remettre la connexion pour les prog. … :  free</p>
<h3>Config pour les MMS :</h3>
<p>dans programme message pour SMSMMS<br />
menu / Option MMS … /serveur /nouveau<br />
avec :</p>
<ul>
<li>Nom de serveur :mmsfree</li>
<li>passrelle: vide</li>
<li>Numero de port 8080</li>
<li>adresse du serveur <a rel="nofollow" href="http://mms.free.fr/">http://mms.free.fr</a></li>
<li>connecter via : mmsfree</li>
</ul>
<p>et voila tout marche :  Internet et MMS.</p>
<p>Si vous êtes sur un Windows Phone, vous pouvez <a href="http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-sur-windows-phone-7-5-mango-pour-internet-et-mms/">lire cet article</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-windows-mobile-6-1-internet-mms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurer Free Mobile sur Windows Phone 7.5 Mango pour Internet et MMS</title>
		<link>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-sur-windows-phone-7-5-mango-pour-internet-et-mms/</link>
		<comments>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-sur-windows-phone-7-5-mango-pour-internet-et-mms/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 16:57:28 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Tous les jours]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=311</guid>
		<description><![CDATA[Si vous venez d&#8217;insérer votre carte SIM Free Mobile sur votre Windows Phone, et que votre ligne est activée, vous vous êtes surement rendu compte que ni les mms, ni internet ne fonctionnait. Faire fonctionner Internet sur Free Mobile avec un Windows Phone 7.5 Mango Pour vous faire gagner du temps, voici la démarche pour [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous venez d&#8217;insérer votre carte SIM <a href="http://mobile.free.fr/">Free Mobile</a> sur votre Windows Phone, et que votre ligne est activée, vous vous êtes surement rendu compte que ni les mms, ni internet ne fonctionnait.</p>
<h3>Faire fonctionner Internet sur <em>Free Mobile</em> avec un Windows Phone 7.5 Mango</h3>
<p>Pour vous faire gagner du temps, voici la démarche pour faire fonctionner la connexion internet par <a href="http://mobile.free.fr/">Free Mobile</a> :</p>
<ul>
<li>Allez dans les <em>Paramettres</em> &gt; <em>réseau mobile</em></li>
<li>Pour Option d&#8217;itinérance, selectionnez <em>itinérance</em></li>
<li>Tout en bas, cliquez sur <em>Ajouter APN</em></li>
<li>Dans le champs <em>APN</em> saisissez : <strong>free</strong></li>
<li>Ne mettez rien sur les autres champs</li>
<li>cliquez sur l&#8217;icone pour valider</li>
<li>Redémarrez votre téléphone</li>
</ul>
<p>Sans aucune autre modification, internet devrait fonctionner. Si jamais ce n&#8217;est pas le cas n&#8217;hésitez pas rajouter des commentaires pour décrire vos problèmes et éventuellement vos solutions.</p>
<h3>Faire fonctionner les MMS sur Windows Phone 7.5 Mango avec <em>Free Mobile</em></h3>
<blockquote><p>Ne cherchez pas : il n&#8217;est pas possible à l&#8217;heure actuelle de faire fonctionner les MMS et Internet en même temps sur Windows Phone si votre opérateur est <a href="http://mobile.free.fr/">Free Mobile</a></p></blockquote>
<p>C&#8217;est un peu triste mais bon, il vous reste l&#8217;email <img src='http://www.manitra.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour les utilisateur de Windows Mobile 6, j&#8217;ai repris le commentaire de bernard dans un <a href="http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-windows-mobile-6-1-internet-mms/">nouveau post ici </a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/tous-les-jours/configurer-free-mobile-sur-windows-phone-7-5-mango-pour-internet-et-mms/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Sweet DevTools</title>
		<link>http://www.manitra.net/blog/dev/csharp/sweet-devtools/</link>
		<comments>http://www.manitra.net/blog/dev/csharp/sweet-devtools/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:38:23 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=301</guid>
		<description><![CDATA[I just published few online tools for developers at devtools.manitra.net and I hope they will allow you to save time. The widgets currently available are : Guid generator Timestamp Converter Browser Information Text transformation (html entity, url encode, base64encode &#8230;) Regex tester Those tools already exist on the web but the key stuffs here is [...]]]></description>
			<content:encoded><![CDATA[<p>I just published few <a href="http://devtools.manitra.net">online tools</a> for developers at <a href="http://devtools.manitra.net">devtools.manitra.net</a> and I hope they will allow you to save time. The widgets currently available are :</p>
<ul>
<li><a href="http://devtools.manitra.net/Pages/Guid/">Guid generator</a></li>
<li><a href="http://devtools.manitra.net/Pages/TimeStamp/">Timestamp Converter</a></li>
<li><a href="http://devtools.manitra.net/Pages/BrowserInfo/">Browser Information</a></li>
<li><a href="http://devtools.manitra.net/Pages/TextTransform/">Text transformation</a> (html entity, url encode, base64encode &#8230;)</li>
<li><a href="http://devtools.manitra.net/Pages/RegexTester/">Regex tester</a></li>
</ul>
<p>Those tools already exist on the web but the key stuffs here is that they are :</p>
<ul>
<li>tiny (minimalist web page without blabla about what a base64 encoding is etc ..)</li>
<li>embeddable as widget</li>
<li>free and ad-free</li>
</ul>
<p>By the way, they are best used within a <a href="http://www.netvibes.com">netvibes dashboard</a> (Web Page Widget).</p>
<p>Enjoy <img src='http://www.manitra.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/dev/csharp/sweet-devtools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criteo Publisher Marketplace : Claim you money starting from 50 USD/50EUR/50GBP</title>
		<link>http://www.manitra.net/blog/event/criteo-publisher-marketplace-claim-you-money-starting-from-50-usd50eur50gbp/</link>
		<comments>http://www.manitra.net/blog/event/criteo-publisher-marketplace-claim-you-money-starting-from-50-usd50eur50gbp/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:25:18 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Evènnement]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=292</guid>
		<description><![CDATA[Starting from today, Criteo PM is reducing the minimum amount of money to get paid. The previous floor was 150€/$/£, and it is now as low as  50€/$/£, depending on your country. If you have a website with more than 100k  displays a month and want to get more money, you can register now at [...]]]></description>
			<content:encoded><![CDATA[<p>Starting from today, Criteo PM is reducing the minimum amount of money to get paid. The previous floor was 150€/$/£, and it is now as low as  50€/$/£, depending on your country.</p>
<p>If you have a website with more than 100k  displays a month and want to get more money, you can register now at <a href="http://publishers.criteo.com">Criteo PM</a> and give it a try.</p>
<p>How could you get more money with <a href="http://publishers.criteo.com/">Criteo PM</a> ? here are the step :</p>
<ul>
<li>calculate your current average CPM on your site</li>
<li>register to <a href="http://publishers.criteo.com/">Criteo PM</a>, and put a minimum CPM equal to your average value</li>
<li>put your current advertisement code in the Criteo PM &#8220;passback&#8221;  configuration</li>
<li>put the Criteo PM code on your web pages</li>
</ul>
<p>Criteo will buy impressions at a price which is greater or equal to the minimum you set. And when we can&#8217;t buy it at that price (because we don&#8217;t know the end user), we&#8217;ll just drop your current advertisement code so that your usual ads are displayed (a passback).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/event/criteo-publisher-marketplace-claim-you-money-starting-from-50-usd50eur50gbp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code of duty : le concours de programmation de Criteo</title>
		<link>http://www.manitra.net/blog/event/code-of-duty-le-concours-de-programmation-de-criteo/</link>
		<comments>http://www.manitra.net/blog/event/code-of-duty-le-concours-de-programmation-de-criteo/#comments</comments>
		<pubDate>Wed, 25 May 2011 07:46:12 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Evènnement]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=281</guid>
		<description><![CDATA[Criteo, ma société, lance un concours de programmation avec 10 000€ ou 20 IPAD2 à gagner. Les short listés auront de grandes chances d&#8217;être embauchés. Si vous en avez marre des SSII ou des sociétés qui ne jurent que par le prestige des diplômes et que, comme moi vous êtes passionnés par la programmation, c&#8217;est [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.criteo.com">Criteo</a>, ma société, lance un <a href="http://codeofduty.criteo.com/">concours de programmation</a> avec <strong>10 000€</strong> ou <strong>20 IPAD2</strong> à gagner. Les short listés auront de grandes chances d&#8217;être embauchés.</p>
<p>Si vous en avez marre des SSII ou des sociétés qui ne jurent que par le prestige des diplômes et que, comme moi vous êtes passionnés par la programmation, c&#8217;est le moment de vous bouger et de rejoindre le petit <a href="http://codeofduty.criteo.com/">Google français</a>.</p>
<p>p.s : ce n&#8217;est pas <a href="http://codeofduty.criteo.com/">un jeu vidéo</a> <img src='http://www.manitra.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/event/code-of-duty-le-concours-de-programmation-de-criteo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fihirana Online est ouvert</title>
		<link>http://www.manitra.net/blog/event/fihirana-online-est-ouvert/</link>
		<comments>http://www.manitra.net/blog/event/fihirana-online-est-ouvert/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 11:07:48 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Evènnement]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=270</guid>
		<description><![CDATA[Après une période de beta-testing de 18 mois le site Fihirana Online est enfin ouvert au grand publique. Vous pouvez vous y rendre pour obtenir les paroles des cantiques de tout le fihirana. Les fonctionnalités présentes dès maintenant sont : Intégralité du Fihirana FFPM en ligne Possibilité de rechercher textuelle ou par numéro Programme de [...]]]></description>
			<content:encoded><![CDATA[<p>Après une période de beta-testing de 18 mois le site <a href="http://fihirana.org">Fihirana Online</a> est enfin ouvert au grand publique. Vous pouvez vous y rendre pour obtenir les paroles des cantiques de tout le fihirana.</p>
<p>Les fonctionnalités présentes dès maintenant sont :</p>
<ul>
<li>Intégralité du Fihirana FFPM en ligne</li>
<li>Possibilité de rechercher textuelle ou par numéro</li>
<li>Programme de cultes de votre église mis à jour tous les dimanche</li>
</ul>
<p>Les fonctionnalités qui arrivent dans les prochains jours sont :</p>
<ul>
<li>Une application iPhone</li>
<li>Une application Windows Phone</li>
<li>Et bien d&#8217;autres chose</li>
</ul>
<p>Pour rester au courant des nouveautés :</p>
<ul>
<li><a href="http://fb.fihirana.org">http://fb.fihirana.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/event/fihirana-online-est-ouvert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projection documentaire Fihavanana, La Solidarité à Madagascar</title>
		<link>http://www.manitra.net/blog/uncategorized/projection-documentaire-fihavanana-la-solidarite-a-madagascar/</link>
		<comments>http://www.manitra.net/blog/uncategorized/projection-documentaire-fihavanana-la-solidarite-a-madagascar/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 22:40:15 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=247</guid>
		<description><![CDATA[Parce que la notion de Fihavanana est un élément clé de la culture malgache, Parce que Fihavanana signifie « veiller les uns sur les autres au quotidien », sur sa famille , sur ses amis, ici nous voulons l’étendre à nos compatriotes, aux hommes, femmes et enfants du monde entier. Ciné-concert solidaire A l’occasion de la Semaine [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>Parce que la notion de Fihavanana est un élément clé de la culture malgache,</em></p>
<p><em>Parce que Fihavanana signifie « veiller les uns sur les autres au quotidien », sur sa famille , sur ses amis, ici nous voulons l’étendre à nos compatriotes, aux hommes, femmes et enfants du monde entier.</em></p></blockquote>
<p><strong>Ciné-concert solidaire</strong></p>
<p>A l’occasion de la Semaine de la Solidarité Internationale, l’association Cœur et Conscience présente le documentaire <strong>« FIHAVANANA,  la Solidarité à Madagascar »,</strong> qui sera projeté en avant première le 20 Novembre 2010 à la Maison des Associations de Solidarité (Paris 13e).</p>
<p>Le Fihavanana c’est cette précieuse solidarité qui unit les inconnus, les  pousse à agir et à se soutenir. Avec ce documentaire, nous découvrirons que &#8220;L&#8217;important n&#8217;est pas de faire de grandes choses, mais de faire<strong> </strong>quelque chose … … Et tout le monde peut faire quelque chose.&#8221;</p>
<p><strong>Devenir acteur de la Solidarité Internationale</strong></p>
<p>Au travers d’entretiens et d’images prises sur le terrain, ce documentaire nous montre qu’il existe plusieurs façons d’agir, et qu’aucun de nos gestes n’est insignifiant ! <strong> </strong></p>
<p>Participer à cette soirée, c’est ouvrir les yeux sur une réalité qui gagne du terrain à Madagascar. <em>Echanger</em><strong> </strong>avec les intervenants et les associations présentes,<em> amorcer un changement</em> pour agir en tant qu’acteur responsable de la solidarité internationale.</p>
<p>Comme ces hommes l’ont fait un jour, le public pourra s’interroger sur ses valeurs et s’approprier Le Fihavanana, qui bien qu’originaire d’une île lointaine est une leçon de vie pour tout citoyen du monde.</p>
<p>Un petit quelque chose que je vous incite à faire c’est donc de venir soutenir l’action de l’association Cœur et Conscience en assistant à cet avant-première.</p>
<p><strong><br />
</strong></p>
<p><strong>Une soirée sympathique et enrichissante,</strong></p>
<p>Vous aurez au programme :</p>
<p>* Une première partie de soirée en <em>musique</em><strong> </strong>avec l’artiste malgache<em> Rola Gamana</em>, compositeur de la bande originale du film. Sa musique est l’alliance de sonorités traditionnelles et modernes malgache.<br />
* Une entracte au stand de tsaky-tsaky<br />
* Suivi de la <em>projection</em> du documentaire (durée 52 min) et d’<em>échanges </em>avec le public.</p>
<p>Si malheuresement vous ne pouvez pas venir assister à cet avant première, parlez en autour de vous. Plus nous pouvons sensibiliser de monde à cette cause, mieux nous pourrons faire reculer la misère et la pauvreté sur notre planète. Quelque chose, c’est aussi ça.</p>
<p>Je vous remercie d’ores et déjà et vous dis à très bientôt</p>
<p><strong><br />
</strong></p>
<p><strong>Infos pratiques</strong></p>
<p><span style="text-decoration: underline;">Quand</span> : le <strong>20 novembre</strong>, à partir de 19h,</p>
<p><span style="text-decoration: underline;">Où</span><strong> </strong>: à la Maison des Associations de Solidarité, 10 rue des Terres au Curé, 75013 Paris – Métro Olympiades, ligne 14.<span style="text-decoration: underline;"><br />
</span></p>
<p><span style="text-decoration: underline;"><br />
</span></p>
<p><span style="text-decoration: underline;">Prix</span><strong> </strong>: Entrée 15 euros, au profit de l’association Cœur et Conscience.</p>
<p>Bande annonce : www.dailymotion.com/video/xeriab_fihavanana-la-solidaritey-ay-madaga_travel</p>
<p>Site officiel du film : www.fihavanana-lefilm.com</p>
<p>Billetterie avant première : http://www.weezevent.com/fihavanana-lefilm (attention places limitées!)</p>
<p>L&#8217;association : http://www.coeuretconscience.org/</p>
<p><strong>Contact Presse</strong></p>
<p><strong> Minosoa Rabetrano<br />
0667783725</strong></p>
<p><a href="http://www.coeuretconscience.org/" target="_blank">contact@fihavanana-lefilm.com </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/uncategorized/projection-documentaire-fihavanana-la-solidarite-a-madagascar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create deeply nested Asp.net Dynamic Controls ?</title>
		<link>http://www.manitra.net/blog/dev/csharp/how-to-create-deeply-nested-asp-net-dynamic-controls/</link>
		<comments>http://www.manitra.net/blog/dev/csharp/how-to-create-deeply-nested-asp-net-dynamic-controls/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 20:02:08 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=211</guid>
		<description><![CDATA[Creating controls at runtime (dynamic controls) in Asp.net is both tricky and unintuitive. This article will explain a pattern to make it easier. 

The main advantages of this strategy  are :
- ability to create deeply nested controls with unlimited depth
- each dynamicaly created controls have normal states (Viewstate is not broken)
- you can create those controls whenever you want (including OnClick events, PreRender and Render phases)
- no hacks with postback arguments are required]]></description>
			<content:encoded><![CDATA[<p>Creating controls at runtime (dynamic controls) in Asp.net is both tricky and unintuitive. This article will explain a pattern to make it easier. </p>
<p>The main advantages of this strategy  are :<br />
- ability to create deeply nested controls with unlimited depth<br />
- each dynamicaly created controls have normal states (Viewstate is not broken)<br />
- you can create those controls whenever you want (including OnClick events, PreRender and Render phases)<br />
- no hacks with postback arguments are required</p>
<blockquote><p>[UPDATE (2011/08/01)] : &#8220;M&#8221; found that the PersistentPanel doesn&#8217;t work well when it is instantiated in a markup file (aspx/ascx/master &#8230;) so I would advice you to instanciate it via code in the CreateChildControl method. The source code in the bottom of the page have been updated to reflect that.</p></blockquote>
<h3>The online demo</h3>
<p>To help you understand what am I talking about here is an online example of deeply nested and dynamically created controls using Asp.Net.<br />
<iframe style="border: 0px; width: 95%; height: 400px;"  src="http://web.manitra.net/dev/Manitra.DynamicControl/complex.aspx"></iframe><br />
You can create as much nested controls as you want and test that each controls persists its state upon postbacks. </p>
<h3>The implementation</h3>
<h4>The PersistentPanel</h4>
<p>The PersistentPanel is just a Panel wich persists its child controls collection using the viewstate automatically. This is a key control because it recreates the dynamically created controls on each post back during the right life-cycle phase : OnLoadViewstate.  Thanks to this early recreation, those controls can persist their state in the ViewState like any controls declared in the markup page during the design time.</p>
<p>This kind of component is quite common now a days but the particularity here is that I do not try to persits all the nested controls but only the direct children. Indeed, if you try to persist and recreate the whole hierarchy, you&#8217;ll encounter problems and will have to handle a lot of special cases. More over since event handlers are not persisted, the restored components wont work. </p>
<p>The implementation process of the PersitentPanel  :</p>
<ul>
<li>during the save process of the viewstate we save the control hierarchy (type+Id only) using a serializable entity that store the control type, its Id and and a list of children</li>
<li>during the restore process of the viewstate we refill the Controls collection using the previously saved control hierarchy</li>
</ul>
<div class="geshi csharp">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> PersistentPanel <span class="sy0">:</span> Panel</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw4">string</span> ControlsViewStateKey <span class="sy0">=</span> <span class="st0">&quot;Controls&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> MaxDepth</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var value <span class="sy0">=</span> ViewState<span class="br0">&#91;</span><span class="st0">&quot;MaxDepth&quot;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>value <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">&#41;</span> <span class="kw1">return</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span>value;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ViewState<span class="br0">&#91;</span><span class="st0">&quot;MaxDepth&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> value;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">protected</span> <span class="kw1">override</span> <span class="kw1">void</span> LoadViewState<span class="br0">&#40;</span><span class="kw4">object</span> savedState<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">base</span>.<span class="me1">LoadViewState</span><span class="br0">&#40;</span>savedState<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var persisted <span class="sy0">=</span> <span class="br0">&#40;</span>ControlEntity<span class="br0">&#41;</span>ViewState<span class="br0">&#91;</span>ControlsViewStateKey<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>persisted <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span>var child <span class="kw1">in</span> persisted.<span class="me1">Children</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Controls.<span class="me1">Add</span><span class="br0">&#40;</span>child.<span class="me1">ToControl</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">protected</span> <span class="kw1">override</span> <span class="kw4">object</span> SaveViewState<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ViewState<span class="br0">&#91;</span>ControlsViewStateKey<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">new</span> ControlEntity<span class="br0">&#40;</span><span class="kw1">this</span>, MaxDepth<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var result <span class="sy0">=</span> <span class="kw1">base</span>.<span class="me1">SaveViewState</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> result;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h4>The parent of the dynamic controls</h4>
<p>The component wich will dynamicaly create the controls will first embed a PersistentPanel. And each time it will want to add a control it will add that control in the PersistentPanel&#8217;s controls collection. Here is an example :</p>
<div class="geshi csharp">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">public</span> <span class="kw4">class</span> CustomerView <span class="sy0">:</span> Page <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">private</span> PersistentPanel ctlPanel;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">// &#8212;&#8212; //</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">protected</span> <span class="kw1">void</span> ctlAdd_click<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ctlPanel.<span class="me1">Controls</span>.<span class="me1">Add</span><span class="br0">&#40;</span><span class="kw3">new</span> Textbox<span class="br0">&#123;</span>Text<span class="sy0">=</span>Datetime.<span class="me1">Now</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h4>Combining both to build a hierarchical data editor</h4>
<p>Now we have a persistant panel and know that dynamically created controls are persisted, we&#8217;ll create a control that would create other complexes controls wich will have the same type as their creator. This would give us a powerfull control that would be able to display or edit hierarchical data wich, in our case, is a filter expression. We&#8217;ll have<br />
- a control to edit scalar filter<br />
- a control to edit composite filter<br />
The scalar filter will just contain 3 simple controls for the field name, the operator and the value. The composite filter editor will be the interesting one. Indeed, it&#8217;s gonna contains a variable number of scalar editor and other composite filter editor. So it will use a persistant panel to host those nested controls. And that&#8217;s it !</p>
<div class="geshi csharp">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">public</span> <span class="kw4">class</span> compositeView <span class="sy0">:</span> WebControl, INamingContainer</div>
</li>
</ol>
</div>
<h3>Conclusion</h3>
<p>The important things to remember are that :<br />
- a control can be created at anytime, but it must be recreated on each postback during/before the LoadViewState of its container<br />
- the ID of the dynamic control must be the same<br />
- event handlers are not persisted, you have to rewire them up on each postback, the PersistantPanel has the ControlRestored event wich is the best place to do so.</p>
<h3>Download the source code</h3>
<p>The online demo application is available here : </p>
<ul>
<li><a href='http://www.manitra.net/blog/wp-content/uploads/2010/09/Manitra.DynamicControl.zip'>Manitra.DynamicControl.zip (source code)</a></li>
<li><a target="_blank" href="http://web.manitra.net/dev/Manitra.DynamicControl/complex.aspx">http://web.manitra.net/dev/Manitra.DynamicControl/complex.aspx</a></li>
</ul>
<p>Have fun !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/dev/csharp/how-to-create-deeply-nested-asp-net-dynamic-controls/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to permanently delete your facebook account ?</title>
		<link>http://www.manitra.net/blog/privacy/how-to-permanently-delete-your-facebook-account/</link>
		<comments>http://www.manitra.net/blog/privacy/how-to-permanently-delete-your-facebook-account/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 00:44:24 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=193</guid>
		<description><![CDATA[Ever wanted to permanently delete your Facebook account ? Here are the steps. Quick link Be sure to log in on Facebook using another window (Click here to do so) then click this direct link to permanently delete your facebook account : Permanently delete my facebook account How to find this link ? This link [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to permanently delete your Facebook account ? Here are the steps.</p>
<h3>Quick link</h3>
<p>Be sure to log in on Facebook using another window (<a href="http://www.facebook.com" target="__blank">Click here to do so</a>) then click this direct link to permanently delete your facebook account : </p>
<ul>
<li><a href="http://www.facebook.com/help/contact.php?show_form=delete_account" target="__blank">Permanently delete my facebook account</a>
        </li>
</ul>
<h3>How to find this link ?</h3>
<p>This link is deeply hidden in the Facebook Help Center. Here are the 6 steps to find it :</p>
<ul>
<li>click on &#8216;Account&#8217; on the top right of the facebook page then select &#8216;Help center&#8217;</li>
<li>click on &#8216;Safety&#8217; on the top left of the page</li>
<li>click on &#8216;Privacy FAQs&#8217; on the bottom left of the page</li>
<li>click on &#8216;Deactivating, deleting and memorializing accounts&#8217; in the middle of the page</li>
<li>click on &#8216;How do I permanently delete my account?&#8217; in the middle of the page</li>
<li>click on &#8216;here&#8217; in the 2nd part of the &#8216;How do I permanently delete my account?&#8217; response</li>
<li>That&#8217;s it !</li>
</ul>
<h3>More about the deletion process</h3>
<p>The deletion of a facebook account has 3 steps :</p>
<ul>
<li>You request your account deletion (using the link at the top of this page)</li>
<li>You wait 14 days without logging in Facebook <em>(*)</em> </li>
<li>Your Facebook account is permanently deleted</li>
</ul>
<p><em>(*) If you log in with your Facebook account during the 14 days of waiting, you will have the option (not the obligation) to cancel your deletion request.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/privacy/how-to-permanently-delete-your-facebook-account/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who am I ?</title>
		<link>http://www.manitra.net/blog/event/who-am-i/</link>
		<comments>http://www.manitra.net/blog/event/who-am-i/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:08:15 +0000</pubDate>
		<dc:creator>manitra</dc:creator>
				<category><![CDATA[Evènnement]]></category>

		<guid isPermaLink="false">http://www.manitra.net/blog/?p=168</guid>
		<description><![CDATA[Le groupe de Jeune de mon église vous propose un spectacle distrayant mais surtout porteur d&#8217;un message profond. Je vous invite à venir nous voir. Infos pratiques Date : samedi 13 Mars 2010 Heures : il y aura 2 représentations. La première est à 14h30. La deuxième est à 18h30 Lieu : Palais des Congrès [...]]]></description>
			<content:encoded><![CDATA[<p>
Le groupe de Jeune de mon église vous propose un spectacle distrayant mais surtout porteur d&#8217;un message profond. Je vous invite à venir nous voir.
</p>
<h4>Infos pratiques</h4>
<ul>
<li>Date : <strong>samedi 13 Mars 2010</strong></li>
<li>Heures : il y aura 2 représentations. La première est à <strong>14h30</strong>. La deuxième est à <strong>18h30</strong></li>
<li>Lieu : Palais des Congrès de Puteaux, 3 bis rue Chantecoq 92800 Puteaux</li>
<li>Vente des billets : elle commencera début février</li>
<li>Tarifs : les tarifs seront communiqués début février</li>
<li>Tarifs : les tarifs seront communiqués début février</li>
<li>Plus d&#8217;info sur : <strong><a href="http://2010.tanora.org">2010.tanora.org</a></strong></li>
</ul>
<h4>L&#8217;affiche</h4>
<p>
<a href="http://2010.tanora.org"><img src="http://www.manitra.net/blog/wp-content/uploads/2010/01/revelation-1-2-1-200x300.jpg" alt="Who am I" title="Who am I" width="200" height="300" class="center size-medium wp-image-167" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manitra.net/blog/event/who-am-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

