<?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>Blog de Nico-pyright(c) &#187; FAQ</title>
	<atom:link href="https://blog.developpez.com/nico-pyright/pcategory/asp-net/faq/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/nico-pyright</link>
	<description></description>
	<lastBuildDate>Mon, 08 Apr 2013 09:26:35 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>[.NET]  [ASP.NET][VB.NET] Refonte de la FAQ ASP.NET VB.NET</title>
		<link>https://blog.developpez.com/nico-pyright/p8345/c/title_152</link>
		<comments>https://blog.developpez.com/nico-pyright/p8345/c/title_152#comments</comments>
		<pubDate>Mon, 16 Nov 2009 23:00:10 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Découvrez la refonte de la FAQ ASP.NET, en VB.NET. Au menu : &#8211; Refonte du plan de la FAQ &#8211; Mise à jour de questions/réponses obsolètes &#8211; Ajout de 60 nouvelles questions/réponses Vous pouvez laissez vos avis/commentaires/suggestions sur ce billet ou sur le forum]]></description>
				<content:encoded><![CDATA[<p>Découvrez la <a href="http://dotnet.developpez.com/faq/asp/vbnet/">refonte de la FAQ ASP.NET, en VB.NET</a>.</p>
<p>Au menu :<br />
&#8211; Refonte du plan de la FAQ<br />
&#8211; Mise à jour de questions/réponses obsolètes<br />
&#8211; Ajout de 60 nouvelles questions/réponses</p>
<p>Vous pouvez laissez vos avis/commentaires/suggestions sur ce billet <a href="http://www.developpez.net/forums/d837100/dotnet/visual-basic-net/asp-net/faq-asp-net-commentaires-suggestions/">ou sur le forum</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ASP.NET][C#] Refonte de la FAQ ASP.NET C#</title>
		<link>https://blog.developpez.com/nico-pyright/p8191/c/asp_net_c_refonte_de_la_faq_asp_net_c</link>
		<comments>https://blog.developpez.com/nico-pyright/p8191/c/asp_net_c_refonte_de_la_faq_asp_net_c#comments</comments>
		<pubDate>Tue, 13 Oct 2009 23:00:18 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Découvrez la refonte de la FAQ ASP.NET, en C#. Au menu : &#8211; Refonte du plan de la FAQ &#8211; Mise à jour de questions/réponses obsolètes &#8211; Ajout de 28 nouvelles questions/réponses Vous pouvez laissez vos avis/commentaires/suggestions sur ce billet ou sur le forum]]></description>
				<content:encoded><![CDATA[<p>Découvrez la refonte de la <a href="http://dotnet.developpez.com/faq/asp/csharp/">FAQ ASP.NET, en C#</a>.</p>
<p>Au menu :<br />
&#8211; Refonte du plan de la FAQ<br />
&#8211; Mise à jour de questions/réponses obsolètes<br />
&#8211; Ajout de 28 nouvelles questions/réponses</p>
<p>Vous pouvez laissez vos avis/commentaires/suggestions sur ce billet ou <a href="http://www.developpez.net/forums/d821287/dotnet/csharp/asp-net/faq-asp-net-commentaires-suggestions/">sur le forum</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complément sur l’entrée de FAQ : Peut-on avoir plusieurs formulaires avec runat=server dans une même page ?</title>
		<link>https://blog.developpez.com/nico-pyright/p8154/c/complement_sur_l_entree_de_faq_peut_on_a</link>
		<comments>https://blog.developpez.com/nico-pyright/p8154/c/complement_sur_l_entree_de_faq_peut_on_a#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:26:34 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ce cher Jérôme me faisait remarquer à juste titre que cette entrée de la FAQ : Peut-on avoir plusieurs formulaires avec runat=server dans une même page ? n&#8217;était pas très étoffée&#8230; Et il a tout à fait raison. Mais pourquoi ne peut-on pas avoir plusieurs formulaires avec runat=server sur une même page ? Il serait d&#8217;ailleurs plus judicieux de préciser qu&#8217;on ne peut pas avoir plusieurs formulaires visible sur la même page. En effet 1: [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Ce cher <a href="http://www.developpez.net/forums/u26308/jerome-lambert/">Jérôme</a> me faisait remarquer à juste titre que cette entrée de la FAQ : <a href="http://dotnet.developpez.com/faq/asp/csharp/?page=WebControls_divers#formulairesrunatserver">Peut-on avoir plusieurs formulaires avec runat=server dans une même page ?</a> n&rsquo;était pas très étoffée&#8230; </p>
<p>Et il a tout à fait raison. </p>
<p>Mais pourquoi ne peut-on pas avoir plusieurs formulaires avec runat=server sur une même page ?<br />
  <br />Il serait d&rsquo;ailleurs plus judicieux de préciser qu&rsquo;on ne peut pas avoir plusieurs formulaires visible sur la même page. </p>
<p>En effet </p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> &lt;form id=<span style="color: #006080">&quot;form1&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span>&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> &lt;/form&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span> &lt;form id=<span style="color: #006080">&quot;form2&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span> visible=<span style="color: #006080">&quot;false&quot;</span>&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span> &lt;/form&gt;</pre>
</div>
</div>
<p>ne posera pas de problème d&rsquo;exécution, tandis que : </p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> &lt;form id=<span style="color: #006080">&quot;form1&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span>&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> &lt;/form&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span> &lt;form id=<span style="color: #006080">&quot;form2&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span>&gt;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span> &lt;/form&gt; </pre>
</div>
</div>
<p>levera l&rsquo;HttpException suivante :&#160;&#160;&#160; </p>
<blockquote><p>A page can have only one server-side Form tag.</p></blockquote>
<p>Le modèle de programmation à formulaire unique (<a href="http://msdn.microsoft.com/en-us/library/dd163816.aspx">Single Form Model</a><a href="http://msdn.microsoft.com/en-us/library/dd163816.aspx)">)</a> est fait de manière à n&rsquo;avoir qu&rsquo;une seule balise form visible, avec l&rsquo;attribut runat = server. Cela permet à ASP.NET de gérer les contrôles qui sont posés dans le formulaire, ayant la balise runat=server, coté serveur. Cela permet entre autre de pouvoir y accéder dans le code behind directement.</p>
<p>Le modèle de développement impose que les éléments de formulaire soient postés à la même page qui les a soumis, ce qui permet aux mécanismes d&rsquo;ASP.NET (ViewState, etc &#8230;) de fonctionner correctement. </p>
<p>Pour la curiosité, la pile d&rsquo;appel au moment de l&rsquo;exception nous permet de constater que l&rsquo;exception est levée au moment de l&rsquo;appel à la méthode System.Web.UI.Page.OnFormRender() </p>
<p>Un petit coup de reflector nous permet de voir </p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">internal</span> <span style="color: #0000ff">void</span> OnFormRender()</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> {</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span>  <span style="color: #0000ff">if</span> (<span style="color: #0000ff">this</span>._fOnFormRenderCalled)</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span>  {</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span>    <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> HttpException(SR.GetString(<span style="color: #006080">&quot;Multiple_forms_not_allowed&quot;</span>));</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span>  }</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span>  <span style="color: #0000ff">this</span>._fOnFormRenderCalled = <span style="color: #0000ff">true</span>;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>  <span style="color: #0000ff">this</span>._inOnFormRender = <span style="color: #0000ff">true</span>;</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span> } </pre>
</div>
</div>
<p>Cette méthode OnFormRender est appelée au moment du rendu du contrôle HtmlForm. Le code issu de Reflector nous permet bien de constater qu&rsquo;un boolean est mis à vrai lors du rendu d&rsquo;un contrôle HtmlForm. Si ce boolean est déjà à vrai, alors l&rsquo;exception est levée.</p>
<p>Cette entrée de faq sera modifiée à la prochaine (très bientôt) mise à jour.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[ASP.NET][C#] Lorsque j&#8217;utilise une MasterPage, mon contôle placé dans un ContentPlaceHolder vaut null dans l&#8217;événement OnPreInit</title>
		<link>https://blog.developpez.com/nico-pyright/p6979/c/asp_net_c_lorsque_j_utilise_une_masterpa</link>
		<comments>https://blog.developpez.com/nico-pyright/p6979/c/asp_net_c_lorsque_j_utilise_une_masterpa#comments</comments>
		<pubDate>Fri, 19 Dec 2008 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[En voilà un titre long Il faut dire qu&#8217;il s&#8217;agit d&#8217;un problème qui arrive dans le cas suivant : On dispose d&#8217;une masterpage, ex (un peu épuré) : &#60;%@ Master Language=&#34;C#&#34; AutoEventWireup=&#34;false&#34; CodeBehind=&#34;Site1.master.cs&#34; Inherits=&#34;testMasterPage.Site1&#34; %&#62; &#160; &#60;html&#62;&#60;head runat=&#34;server&#34;&#62;&#60;title&#62;&#60;/title&#62;&#60;/head&#62; &#60;body&#62; &#160; &#160; &#60;form id=&#34;form1&#34; runat=&#34;server&#34;&#62; &#160; &#160; &#160; &#160; &#60;asp:ContentPlaceHolder ID=&#34;ContentPlaceHolder1&#34; runat=&#34;server&#34;&#62; &#160; &#160; &#160; &#160; &#60;/asp:ContentPlaceHolder&#62; &#160; &#160; &#60;/form&#62; &#60;/body&#62; &#60;/html&#62; Lorsque l&#8217;on crée une page qui utilise cette masterpage et qui remplit le ContentPlaceHolder, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>En voilà un titre long <img src="https://blog.developpez.com/nico-pyright/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Il faut dire qu&rsquo;il s&rsquo;agit d&rsquo;un problème qui arrive dans le cas suivant :</p>
<p>On dispose d&rsquo;une masterpage, ex (un peu épuré) :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;%@ Master Language=&quot;C#&quot; AutoEventWireup=&quot;false&quot; CodeBehind=&quot;Site1.master.cs&quot; Inherits=&quot;testMasterPage.Site1&quot; %&gt; <br />
&nbsp;<br />
&lt;html&gt;&lt;head runat=&quot;server&quot;&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt; <br />
&lt;body&gt; <br />
&nbsp; &nbsp; &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:ContentPlaceHolder ID=&quot;ContentPlaceHolder1&quot; runat=&quot;server&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/asp:ContentPlaceHolder&gt; <br />
&nbsp; &nbsp; &lt;/form&gt; <br />
&lt;/body&gt; <br />
&lt;/html&gt;</div></div>
<p>Lorsque l&rsquo;on crée une page qui utilise cette masterpage et qui remplit le ContentPlaceHolder, ex :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;%@ Page Language=&quot;C#&quot; MasterPageFile=&quot;~/Site1.Master&quot; AutoEventWireup=&quot;false&quot; CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;testMasterPage._Default&quot; %&gt; <br />
&nbsp;<br />
&lt;asp:Content runat=&quot;server&quot; ContentPlaceHolderID=&quot;ContentPlaceHolder1&quot;&gt; <br />
&nbsp; &nbsp; &lt;asp:Label ID=&quot;leLabel&quot; runat=&quot;server&quot; /&gt; <br />
&lt;/asp:Content&gt;</div></div>
<p>Si j&rsquo;essaie d&rsquo;accéder à mon label dans le OnPreInit de la page, ex :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">protected override void OnPreInit(EventArgs e) <br />
{ <br />
&nbsp; leLabel.Text = &quot;Mon Label&quot;; // leLabel = null !! <br />
&nbsp; base.OnPreInit(e); <br />
}</div></div>
<p>J&rsquo;aurai une exception parce que mon label vaut null. Argh ! Problème !</p>
<p><span id="more-91"></span></p>
<p>La raison à ce comportement, c&rsquo;est que dans le PreInit, la masterpage n&rsquo;est pas encore initialisée.</p>
<p>Pour que mon label ne soit pas null, il faut que je force l&rsquo;initialisation de ma MasterPage, et accédant à l&rsquo;objet Master.</p>
<p>On pourra faire ainsi :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">protected override void OnPreInit(EventArgs e) <br />
{ <br />
&nbsp; MasterPage masterPage = Master; <br />
&nbsp; leLabel.Text = &quot;Mon Label&quot;; <br />
&nbsp; base.OnPreInit(e); <br />
}</div></div>
<p>Désormais, leLabel ne sera plus null et nous serons heureux <img src="https://blog.developpez.com/nico-pyright/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ASP.NET] Mise à jour des FAQ ASP.NET pour C# et VB.NET</title>
		<link>https://blog.developpez.com/nico-pyright/p6561/c/asp_net_mise_a_jour_des_faq_asp_net_pour</link>
		<comments>https://blog.developpez.com/nico-pyright/p6561/c/asp_net_mise_a_jour_des_faq_asp_net_pour#comments</comments>
		<pubDate>Sun, 12 Oct 2008 23:00:00 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bonjour à tous, j&#8217;ai fait la mise à jour des faqs ASP.NET La FAQ ASP.NET C# : 362 questions à vos réponses, dont 12 nouvelles La FAQ ASP.NET VB.NET : 312 questions à vos réponses, dont 14 nouvelles N&#8217;hésitez pas à aller y faire un tour. Pour la prochaine mise à jour, je promets de remettre un peu d&#8217;ordre dans le sommaire et de remettre à jour quelques questions/réponses un peu vieillottes&#8230; Bonne lecture.]]></description>
				<content:encoded><![CDATA[<p>Bonjour à tous,</p>
<p>j&rsquo;ai fait la mise à jour des faqs ASP.NET</p>
<p>La <a href="http://dotnet.developpez.com/faq/asp/csharp/">FAQ ASP.NET C#</a> : 362 questions à vos réponses, dont 12 nouvelles<br />
La <a href="http://dotnet.developpez.com/faq/asp/vbnet/">FAQ ASP.NET VB.NET</a> : 312 questions à vos réponses, dont 14 nouvelles</p>
<p>N&rsquo;hésitez pas à aller y faire un tour.</p>
<p>Pour la prochaine mise à jour, je promets de remettre un peu d&rsquo;ordre dans le sommaire et de remettre à jour quelques questions/réponses un peu vieillottes&#8230;</p>
<p>Bonne lecture.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Asp.Net] Mise à jour des faqs C# et VB.Net</title>
		<link>https://blog.developpez.com/nico-pyright/p5266/c/asp_net_mise_a_jour_des_faqs_c_et_vb_net_1</link>
		<comments>https://blog.developpez.com/nico-pyright/p5266/c/asp_net_mise_a_jour_des_faqs_c_et_vb_net_1#comments</comments>
		<pubDate>Wed, 12 Mar 2008 23:00:00 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Un mot pour vous annoncer une petite mise à jour des faqs Asp.Net (C# et VB.Net). La FAQ ASP.NET C# : 350 questions à vos réponses, dont 16 nouvelles La FAQ ASP.NET VB.NET : 298 questions à vos réponses, dont 21 nouvelles]]></description>
				<content:encoded><![CDATA[<p>Un mot pour vous annoncer une petite mise à jour des faqs Asp.Net (C# et VB.Net).</p>
<p><a href="http://dotnet.developpez.com/faq/asp/csharp/">La FAQ ASP.NET C# : 350 questions à vos réponses, dont 16 nouvelles</a><br />
<a href="http://dotnet.developpez.com/faq/asp/vbnet/">La FAQ ASP.NET VB.NET : 298 questions à vos réponses, dont 21 nouvelles</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Asp.Net] Typage fort de page précédente PreviousPage</title>
		<link>https://blog.developpez.com/nico-pyright/p5188/asp-net/asp_net_typage_fort_de_page_precedente_p</link>
		<comments>https://blog.developpez.com/nico-pyright/p5188/asp-net/asp_net_typage_fort_de_page_precedente_p#comments</comments>
		<pubDate>Wed, 05 Mar 2008 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Utilisé dans mon dernier post, PreviousPage peut être fortement typée en rajoutant une directive dans la page destination. Pour reprendre mon exemple précédent, Page2 pourra recevoir comme directive : &#60;%@ PreviousPageType VirtualPath=&#34;~/Default.aspx&#34; %&#62; ce qui fait que dans le codebehind, on aura plus besoin de cast et on pourra utiliser directement MonLabel.Text = PreviousPage.GetValue(); En fait, le designer nous surchage simplement la propriété : public new Default PreviousPage { &#160; &#160; get { &#160; &#160; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Utilisé dans mon dernier post, PreviousPage peut être fortement typée en rajoutant une directive dans la page destination.</p>
<p>Pour reprendre mon exemple précédent, Page2 pourra recevoir comme directive : <span id="more-64"></span></p>
<p><code class="codecolorer text default"><span class="text">&lt;%@ PreviousPageType VirtualPath=&quot;~/Default.aspx&quot; %&gt;</span></code></p>
<p>ce qui fait que dans le codebehind, on aura plus besoin de cast et on pourra utiliser directement </p>
<p><code class="codecolorer text default"><span class="text">MonLabel.Text = PreviousPage.GetValue();</span></code></p>
<p>En fait, le designer nous surchage simplement la propriété :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">public new Default PreviousPage { <br />
&nbsp; &nbsp; get { <br />
&nbsp; &nbsp; &nbsp; &nbsp; return ((Default)(base.PreviousPage)); <br />
&nbsp; &nbsp; } <br />
}</div></div>
<p>Ce qui lèvera une exception si jamais on vient d&rsquo;une autre page &#8230;</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ASP.NET] Mise à jour des faqs C# et VB.Net</title>
		<link>https://blog.developpez.com/nico-pyright/p4519/asp-net/asp_net_mise_a_jour_des_faqs_c_et_vb_net</link>
		<comments>https://blog.developpez.com/nico-pyright/p4519/asp-net/asp_net_mise_a_jour_des_faqs_c_et_vb_net#comments</comments>
		<pubDate>Tue, 13 Nov 2007 23:00:00 +0000</pubDate>
		<dc:creator><![CDATA[nico-pyright(c)]]></dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bonjour à tous, Travaillant au quotidien en asp.net C# et étant trilingue dotnet ( ), il est temps de créer une nouvelle catégorie sur mon blog ASP.NET ; ce blog va donc s&#8217;enrichir pour parler également d&#8217;asp.net puisque je m&#8217;occupe désormais des faqs asp.net (C# et VB.net). Mon premier billet asp.net sera donc l&#8217;annonce d&#8217;une mise à jour de ces faqs, à savoir : La FAQ ASP.NET C# : 334 réponses à vos questions dont [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Bonjour à tous,</p>
<p>Travaillant au quotidien en asp.net C# et étant trilingue dotnet ( <img src="https://blog.developpez.com/nico-pyright/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> ), il est temps de créer une nouvelle catégorie sur mon blog ASP.NET ; ce blog va donc s&rsquo;enrichir pour parler également d&rsquo;asp.net puisque je m&rsquo;occupe désormais des faqs asp.net (C# et VB.net).</p>
<p>Mon premier billet asp.net sera donc l&rsquo;annonce d&rsquo;une mise à jour de ces faqs, à savoir :</p>
<p>La <a href="http://dotnet.developpez.com/faq/asp/csharp/"><strong>FAQ ASP.NET C#</strong></a> : 334 réponses à vos questions dont 33 nouvelles<br />
La <a href="http://dotnet.developpez.com/faq/asp/vbnet/"><strong>FAQ ASP.NET VB.NET</strong></a> : 277 réponses à vos questions dont 48 nouvelles </p>
<p>Que les amoureux du C++/CLI se rassurent, je continuerai toujours à m&rsquo;occuper de la faq C++/CLI <img src="https://blog.developpez.com/nico-pyright/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
