<?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>Pablo Viale &#187; Ajax</title>
	<atom:link href="http://www.viale.mx/index.php/category/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.viale.mx</link>
	<description>Consejos para diseño y desarrollo de aplicaciones web</description>
	<lastBuildDate>Wed, 29 Jun 2011 22:18:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Utilizando m&#250;ltiples controles UpdateProgress en una sola p&#225;gina</title>
		<link>http://www.viale.mx/2010/11/12/utilizando-multiples-controles-updateprogress-en-una-sola-pagina/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utilizando-multiples-controles-updateprogress-en-una-sola-pagina</link>
		<comments>http://www.viale.mx/2010/11/12/utilizando-multiples-controles-updateprogress-en-una-sola-pagina/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 17:32:54 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.mx/?p=510</guid>
		<description><![CDATA[Si tienes dos o más controles UpdatePanel que quieres que se actualicen por separado, quizás también quieras tener diferentes indicadores “un momento por favor…” para cada uno de ellos, con la finalidad de que se muestren en diferentes posiciones. Antes de darte la solución considera este código: Clic para mostrar texto plano ASP: &#60;asp:ScriptManager ID="ScriptManager1" [...]]]></description>
			<content:encoded><![CDATA[<p><html xmlns="">Si tienes dos o más controles <strong>UpdatePanel</strong> que quieres que se actualicen por separado, quizás también quieras tener diferentes indicadores “un momento por favor…” para cada uno de ellos, con la finalidad de que se muestren en diferentes posiciones.</p>
<p>Antes de darte la solución considera este código:</p>
<div class="igBar"><span id="lasp-4"><a href="#" onclick="javascript:showPlainTxt('asp-4'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-4">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:ScriptManager ID=<span style="color:#CC0000;">"ScriptManager1"</span> runat=<span style="color:#CC0000;">"server"</span> /&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;asp:UpdatePanel ID=<span style="color:#CC0000;">"UpdatePanel1"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:AsyncPostBackTrigger ControlID=<span style="color:#CC0000;">"Boton1"</span> EventName=<span style="color:#CC0000;">"Click"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:UpdateProgress ID=<span style="color:#CC0000;">"UpdateProgress1"</span> runat=<span style="color:#CC0000;">"server"</span> DisplayAfter=<span style="color:#CC0000;">"0"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Un momento por favor...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/asp:UpdateProgress&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Button ID=<span style="color:#CC0000;">"Boton1"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Botón 1"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Label ID=<span style="color:#CC0000;">"Hora1"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"&lt;br /&gt;"</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;/asp:UpdatePanel&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;br /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;br /&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;asp:UpdatePanel ID=<span style="color:#CC0000;">"UpdatePanel2"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:AsyncPostBackTrigger ControlID=<span style="color:#CC0000;">"Boton2"</span> EventName=<span style="color:#CC0000;">"Click"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:UpdateProgress ID=<span style="color:#CC0000;">"UpdateProgress2"</span> runat=<span style="color:#CC0000;">"server"</span> DisplayAfter=<span style="color:#CC0000;">"0"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Un momento por favor...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/asp:UpdateProgress&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Button ID=<span style="color:#CC0000;">"Boton2"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Botón 2"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Label ID=<span style="color:#CC0000;">"Hora2"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">""</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;/asp:UpdatePanel&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lvbnet-5"><a href="#" onclick="javascript:showPlainTxt('vbnet-5'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">VB.NET:</span>
<div id="vbnet-5">
<div class="vbnet">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Protected <span style="color: #0600FF;">Sub</span> Boton1_Click<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> Boton1.<span style="color: #0000FF;">Click</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Threading.<span style="color: #0000FF;">Thread</span>.<span style="color: #0000FF;">Sleep</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;color:#800000;">1000</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Hora1.<span style="color: #0000FF;">Text</span> = <span style="color: #808080;">"La hora es "</span> &amp; <span style="color: #0600FF;">Now</span>.<span style="color: #0000FF;">ToString</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Protected <span style="color: #0600FF;">Sub</span> Boton2_Click<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> Boton2.<span style="color: #0000FF;">Click</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Threading.<span style="color: #0000FF;">Thread</span>.<span style="color: #0000FF;">Sleep</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;color:#800000;">1000</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Hora2.<span style="color: #0000FF;">Text</span> = <span style="color: #808080;">"La hora es "</span> &amp; <span style="color: #0600FF;">Now</span>.<span style="color: #0000FF;">ToString</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>El cual genera lo siguiente:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/11/image.png"><img title="image" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" src="http://www.viale.mx/wp-content/uploads/2010/11/image_thumb.png" border="0" alt="image" width="244" height="111" /></a></p>
<p>Y al hacer clic en el botón 1 (o en el 2) ocurre lo siguiente:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/11/image1.png"><img title="image" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" src="http://www.viale.mx/wp-content/uploads/2010/11/image_thumb1.png" border="0" alt="image" width="170" height="121" /></a></p>
<p>Los dos controles <strong>UpdateProgress</strong> aparecieron porque es su comportamiento natural cuando se hace un postBack. Obviamente queremos que cada uno aparezca únicamente cuando se haga clic en su botón correspondiente.</p>
<p>Para hacerlo, utiliza la propiedad <strong>AssociatedUpdatePanelID </strong>del control <strong>UpdateProgress,</strong> de tal forma que tu código quede así:</p>
<div class="igBar"><span id="lasp-6"><a href="#" onclick="javascript:showPlainTxt('asp-6'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-6">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:ScriptManager ID=<span style="color:#CC0000;">"ScriptManager1"</span> runat=<span style="color:#CC0000;">"server"</span> /&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;asp:UpdatePanel ID=<span style="color:#CC0000;">"UpdatePanel1"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:AsyncPostBackTrigger ControlID=<span style="color:#CC0000;">"Boton1"</span> EventName=<span style="color:#CC0000;">"Click"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:UpdateProgress ID=<span style="color:#CC0000;">"UpdateProgress1"</span> runat=<span style="color:#CC0000;">"server"</span> DisplayAfter=<span style="color:#CC0000;">"0"</span> AssociatedUpdatePanelID=<span style="color:#CC0000;">"UpdatePanel1"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Un momento por favor...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/asp:UpdateProgress&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Button ID=<span style="color:#CC0000;">"Boton1"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Botón 1"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Label ID=<span style="color:#CC0000;">"Hora1"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"&lt;br /&gt;"</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;/asp:UpdatePanel&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;br /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;br /&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;asp:UpdatePanel ID=<span style="color:#CC0000;">"UpdatePanel2"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:AsyncPostBackTrigger ControlID=<span style="color:#CC0000;">"Boton2"</span> EventName=<span style="color:#CC0000;">"Click"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/Triggers&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:UpdateProgress ID=<span style="color:#CC0000;">"UpdateProgress2"</span> runat=<span style="color:#CC0000;">"server"</span> DisplayAfter=<span style="color:#CC0000;">"0"</span> AssociatedUpdatePanelID=<span style="color:#CC0000;">"UpdatePanel2"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Un momento por favor...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/ProgressTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/asp:UpdateProgress&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Button ID=<span style="color:#CC0000;">"Boton2"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Botón 2"</span> /&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;asp:Label ID=<span style="color:#CC0000;">"Hora2"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">""</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/ContentTemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;/asp:UpdatePanel&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><em>El código VB quedaría igual</em></p>
<p>De esta forma al oprimir el primer botón ocurrirá esto:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/11/image2.png"><img title="image" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" src="http://www.viale.mx/wp-content/uploads/2010/11/image_thumb2.png" border="0" alt="image" width="181" height="112" /></a></p>
<p>Y al oprimir el segundo botón verás esto:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/11/image3.png"><img title="image" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" src="http://www.viale.mx/wp-content/uploads/2010/11/image_thumb3.png" border="0" alt="image" width="289" height="110" /></a></p>
<p>De esta forma puedes colocar varios indicadores para cada una de las partes en las que dividas visualmente tu página.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2010/11/12/utilizando-multiples-controles-updateprogress-en-una-sola-pagina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo agregar el salto de línea a los caracteres válidos de un FilteredTextBoxExtender</title>
		<link>http://www.viale.mx/2009/08/20/como-agregar-el-salto-de-linea-a-los-caracteres-validos-de-un-filteredtextboxextender/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-agregar-el-salto-de-linea-a-los-caracteres-validos-de-un-filteredtextboxextender</link>
		<comments>http://www.viale.mx/2009/08/20/como-agregar-el-salto-de-linea-a-los-caracteres-validos-de-un-filteredtextboxextender/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 20:23:02 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/?p=365</guid>
		<description><![CDATA[En el Ajax Control Toolkit de ASP.NET, hay un control llamado FilteredTextBoxExtender que sirve para filtrar los caracteres que se pueden ingresar en un TextBox. Esto es útil, por ejemplo, para permitir únicamente el ingreso de números si estamos capturando un código postal mexicano. Bueno, estaba usándolo en un TextBox con la propiedad TextMode establecida [...]]]></description>
			<content:encoded><![CDATA[<p>En el Ajax Control Toolkit de ASP.NET, hay un control llamado <code>FilteredTextBoxExtender</code> que sirve para filtrar los caracteres que se pueden ingresar en un <code>TextBox</code>.  Esto es útil, por ejemplo, para permitir únicamente el ingreso de números si estamos capturando un código postal mexicano.</p>
<p>Bueno, estaba usándolo en un <code>TextBox</code> con la propiedad <code>TextMode</code> establecida en <code>MultiLine</code>, lo que en <code>HTML</code> se despliega como un <code>textArea</code>, una caja de texto con múltiples líneas.</p>
<p>Esta es la definición de mi caja de texto y el control de filtrado:</p>
<div class="igBar"><span id="lasp-9"><a href="#" onclick="javascript:showPlainTxt('asp-9'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-9">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:TextBox ID=<span style="color:#CC0000;">"Tags"</span> runat=<span style="color:#CC0000;">"server"</span> TextMode=<span style="color:#CC0000;">"MultiLine"</span> Width=<span style="color:#CC0000;">"200px"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Height=<span style="color:#CC0000;">"150px"</span>&gt;&lt;/asp:TextBox&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cc1:FilteredTextBoxExtender ID=<span style="color:#CC0000;">"Tags_FilteredTextBoxExtender"</span> runat=<span style="color:#CC0000;">"server"</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Enabled=<span style="color:#CC0000;">"True"</span> TargetControlID=<span style="color:#CC0000;">"Tags"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ValidChars=<span style="color:#CC0000;">"abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/cc1:FilteredTextBoxExtender&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como puedes ver, estoy permitiendo la entrada de letras mayúsculas, minúsculas, números y espacios.  Pero como se trata de una caja de texto con múltiples líneas, obviamente quiero que se permita teclear saltos de línea cuando el individuo presione la tecla enter o intro.</p>
<p>Este caso es truculento, porque no puedes hacerlo en la página <code>aspx</code>, lo tienes que hacer en el código de servidor, de esta forma:</p>
<div class="igBar"><span id="lvbnet-10"><a href="#" onclick="javascript:showPlainTxt('vbnet-10'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">VB.NET:</span>
<div id="vbnet-10">
<div class="vbnet">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Tags_FilteredTextBoxExtender.<span style="color: #0000FF;">ValidChars</span> = Tags_FilteredTextBoxExtender.<span style="color: #0000FF;">ValidChars</span> &amp; vbCrLf </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como sabrás, <code>vbCrLf</code> significa un salto de línea en Visual Basic, y lo que hace esa línea es añadirlo a los caracteres válidos.</p>
<p>Medio truculento pero funciona!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2009/08/20/como-agregar-el-salto-de-linea-a-los-caracteres-validos-de-un-filteredtextboxextender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genera un delay en una aplicación ASP.NET</title>
		<link>http://www.viale.mx/2009/02/25/genera-un-delay-en-asp-net/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=genera-un-delay-en-asp-net</link>
		<comments>http://www.viale.mx/2009/02/25/genera-un-delay-en-asp-net/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 03:34:00 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/?p=302</guid>
		<description><![CDATA[En ocasiones (muy raras tal vez) necesitarás generar un delay. Un tiempo de espera. Simplemente unos segundos en los que la aplicación duerma. Te preguntarás para qué querría alguien esto. Bueno, uno de los casos en los que puede ser útil es si necesitas simular un tiempo de respuesta lento de la conexión a internet. [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones (muy raras tal vez) necesitarás generar un <code>delay</code>.  Un tiempo de espera.  Simplemente unos segundos en los que la aplicación duerma.</p>
<p>Te preguntarás para qué querría alguien esto.  Bueno, uno de los casos en los que puede ser útil es si necesitas simular un tiempo de respuesta lento de la conexión a internet.  Por ejemplo, si tienes un <code>UpdateProgress</code> de Ajax que estás probando en un servidor local, el procesamiento puede ser tan rápido que quizás nunca veas tu gif animado girar.  En estos casos, puedes colocar un <code>delay</code> que te permita simular que el servidor y/o la conexión tardan un rato en reaccionar.</p>
<p>Para hacerlo, utiliza este código:</p>
<div class="igBar"><span id="lvbnet-12"><a href="#" onclick="javascript:showPlainTxt('vbnet-12'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">VB.NET:</span>
<div id="vbnet-12">
<div class="vbnet">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Threading.<span style="color: #0000FF;">Thread</span>.<span style="color: #0000FF;">Sleep</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;color:#800000;">3000</span><span style="color: #000000;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Donde el 3000 que pongo son milisegundos, en este caso el tiempo de espera sería de 3 segundos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2009/02/25/genera-un-delay-en-asp-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Librería de JavaScript jQuery</title>
		<link>http://www.viale.mx/2009/01/08/libreria-de-javascript-jquery/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=libreria-de-javascript-jquery</link>
		<comments>http://www.viale.mx/2009/01/08/libreria-de-javascript-jquery/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 22:53:05 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/?p=278</guid>
		<description><![CDATA[Existen varios productos desarrollados en JavaScript que puedes comprar por separado para incluir en tus sitios web, como tabs (pestañas), acordeones, pop-ups, etc. Pero hay una librería muy buena que es de descarga gratuita, se llama jQuery. A pesar de ser libre está muy bien desarrollada, incluso tiene distintos temas de diseño de cuáles escoger. [...]]]></description>
			<content:encoded><![CDATA[<p>Existen varios productos desarrollados en JavaScript que puedes comprar por separado para incluir en tus sitios web, como tabs (pestañas), acordeones, pop-ups, etc.</p>
<p>Pero hay una librería muy buena que es de descarga gratuita, se llama <a href="http://ui.jquery.com/">jQuery</a>.</p>
<p>A pesar de ser libre está muy bien desarrollada, incluso tiene distintos temas de diseño de cuáles escoger.  Cada componente tiene varias opciones de configuración que te permiten personalizarlos.</p>
<p>Esta librería contiene:</p>
<p><b>Interacciones</b></p>
<ul>
<li>Arrastrar</li>
<li>Soltar</li>
<li>Dar tamaño</li>
<li>Seleccionar</li>
<li>Ordenar</li>
</ul>
<p><b>Widgets</b></p>
<ul>
<li>Acordeón</li>
<li>Seleccionador de fecha</li>
<li>Ventana emergente</li>
<li>Barra de progreso</li>
<li>Deslizador (slider)</li>
<li>Pestañas (tabs)</li>
</ul>
<p><a href="http://www.viale.com.mx/wp-content/uploads/2009/01/jquery.jpg"><img src="http://www.viale.com.mx/wp-content/uploads/2009/01/jquery.jpg" alt="jquery" title="jquery" width="699" height="633" class="alignnone size-full wp-image-280" /></a></p>
<p>Si eres desarrollador también puedes desarrollar tus propios widgets usando esta librería.</p>
<p>Esta es la página donde encuentras los widgets:<br />
<a href="http://ui.jquery.com/">http://ui.jquery.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2009/01/08/libreria-de-javascript-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo instalar una DLL en el GAC (Global Assembly Cache)</title>
		<link>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-instalar-una-dll-en-el-gac-global-assembly-cache</link>
		<comments>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 22:40:36 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/</guid>
		<description><![CDATA[En ocasiones, cuando estás trabajando en Visual Web Developer 2008 con componentes ASP.NET de terceros (third party), notarás que no funciona el Intellisense y además el diseñador marca que tu componente no está definido. Este es un ejemplo de este problema con el componente FreeTextBox: Noté que esto me pasaba por la siguiente razón: Los [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones, cuando estás trabajando en <code>Visual Web Developer 2008</code> con componentes ASP.NET de terceros (third party), notarás que no funciona el <code>Intellisense</code> y además el diseñador marca que tu componente no está definido.  Este es un ejemplo de este problema con el componente <code>FreeTextBox</code>:</p>
<p><a href='http://www.viale.com.mx/wp-content/uploads/2008/07/notdeclared.gif' title='Component Not Declared'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/notdeclared.gif' alt='Component Not Declared' /></a></p>
<p>Noté que esto me pasaba por la siguiente razón:<br />
Los archivos de mi aplicación están hosteados en un servidor (no en mi PC de desarrollo), por lo que creé una conexión a una unidad de red, asignándola a una letra.  Es decir, había mapeado <code>\\servidor\inetpub\wwwroot\proyecto</code> a <code>w:\proyecto</code>.  Al parecer si tienes tu servidor web de desarrollo corriendo en tu misma PC, lo anterior no ocurre, pero me parece que es muy probable que trabajes en una PC de desarrollo y accedas a un servidor de desarrollo mediante la red local donde están (y corren) los archivos de tu aplicación.  Al menos es mi caso.</p>
<p>Para corregir esta situación tienes que agregar los <code>DLLs</code> del control en el <code>GAC</code>.</p>
<p>Deberás usar la utilidad <code>gacutil.exe</code> que viene en el SDK del <code>.Net Framework 2</code>.  Si no lo tienes, descarga el SDK de aquí:<br />
<a href="http://www.asp.net/Downloads/essential/">http://www.asp.net/Downloads/essential/</a></p>
<p>Coloca el componente (el DLL) en un fólder de la PC en la que usas <code>Visual Web Developer 2008</code>:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/explorer.gif' title='explorer.gif'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/explorer.gif' alt='explorer.gif' /></a></p>
<p>Ahora abre una ventana de <code>MS-DOS</code>, cámbiate a la carpeta en la que tienes instalado el <code>gacutil.exe</code> y corre el comando:</p>
<p><code>gacutil -i nombredeldll.dll</code></p>
<p>Algo como esto:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/msdos.gif' title='Registrando el DLL en el GAC'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/msdos.gif' alt='Registrando el DLL en el GAC' /></a></p>
<p>Ahora reinicia <code>Visual Web Developer</code>, abre tu aplicación de nueva cuenta y mira como ya funciona el <code>Intellisense</code> y no aparece el error de que tu control no está declarado:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/intellisense.gif' title='Intellisense funcionando'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/intellisense.gif' alt='Intellisense funcionando' /></a></p>
<p>Espero que te sea de utilidad. <img src='http://www.viale.mx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Actualización</strong><br />
Si necesitaras desinstalar la libreria del <code>GAC</code>, utiliza esta instrucción:<br />
<code>gacutil -u NombreDeLaLibreria</code><br />
No escribas <code>.dll</code><br />
Por ejemplo:<br />
<code>gacutil -u FreeTextBox</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cómo evitar el error Sys.WebForms.PageRequestManagerParserErrorException</title>
		<link>http://www.viale.mx/2008/05/22/como-evitar-el-error-syswebformspagerequestmanagerparsererrorexception/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-evitar-el-error-syswebformspagerequestmanagerparsererrorexception</link>
		<comments>http://www.viale.mx/2008/05/22/como-evitar-el-error-syswebformspagerequestmanagerparsererrorexception/#comments</comments>
		<pubDate>Thu, 22 May 2008 19:12:57 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/05/22/como-evitar-el-error-syswebformspagerequestmanagerparsererrorexception/</guid>
		<description><![CDATA[Utilizando ASP.NET 3.5 y AJAX me encontré con la siguiente excepción: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled. Para solucionarlo simplemente agrega una sección triggers a tu updatepanel [...]]]></description>
			<content:encoded><![CDATA[<p>Utilizando ASP.NET 3.5 y AJAX me encontré con la siguiente excepción:</p>
<p><code>Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.  common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.</code></p>
<p><a href='http://www.viale.com.mx/wp-content/uploads/2008/05/sys.gif' title='sys.gif'><img src='http://www.viale.com.mx/wp-content/uploads/2008/05/sys.gif' alt='sys.gif' /></a></p>
<p>Para solucionarlo simplemente agrega una sección <code>triggers</code> a tu <code>updatepanel</code> referenciando al botón que envía el formulario.  Así:</p>
<div class="igBar"><span id="lasp-14"><a href="#" onclick="javascript:showPlainTxt('asp-14'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-14">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:UpdatePanel ID=<span style="color:#CC0000;">"UpdatePanel1"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;Triggers&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &lt;asp:PostBackTrigger ControlID=<span style="color:#CC0000;">"MiBoton"</span> /&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;/Triggers&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;ContentTemplate&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;...<span style="color:#9900CC;">tu</span> contenido aquí...</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;/ContentTemplate&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/asp:UpdatePanel&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Normalmente esto siempre funciona, pero si no, <a href="http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to-avoid-it.aspx">visita esta página </a>que contiene toda la explicación completa y más opciones de resolución.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/05/22/como-evitar-el-error-syswebformspagerequestmanagerparsererrorexception/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Iconos de espera para Ajax</title>
		<link>http://www.viale.mx/2008/01/28/iconos-de-espera-para-ajax/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=iconos-de-espera-para-ajax</link>
		<comments>http://www.viale.mx/2008/01/28/iconos-de-espera-para-ajax/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 19:14:48 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/01/28/iconos-de-espera-para-ajax/</guid>
		<description><![CDATA[¿Estás buscando tu propio icono (indicador) de espera para Ajax? Esta página es muy buena, te permite crear el tuyo personalizado con los colores que desees, tiene una amplia variedad y los diseños están atractivos. La salida es un gif animado que puedes descargar. http://www.ajaxload.info/]]></description>
			<content:encoded><![CDATA[<p>¿Estás buscando tu propio icono (indicador) de espera para Ajax?</p>
<p>Esta página es muy buena, te permite crear el tuyo personalizado con los colores que desees, tiene una amplia variedad y los diseños están atractivos.  La salida es un gif animado que puedes descargar.</p>
<p><a href="http://www.ajaxload.info/">http://www.ajaxload.info/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/01/28/iconos-de-espera-para-ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Los controles de validación no funcionan dentro de un UpdatePanel</title>
		<link>http://www.viale.mx/2007/06/07/los-controles-de-validacion-no-funcionan-dentro-de-un-updatepanel/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=los-controles-de-validacion-no-funcionan-dentro-de-un-updatepanel</link>
		<comments>http://www.viale.mx/2007/06/07/los-controles-de-validacion-no-funcionan-dentro-de-un-updatepanel/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 01:00:07 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2007/06/07/los-controles-de-validacion-no-funcionan-dentro-de-un-updatepanel/</guid>
		<description><![CDATA[Estoy trabajando con: ASP.NET 2.0.50727 Extensiones Ajax 1.0 Puse un UpdatePanel que contiene campos que el usuario va a llenar. Puse controles de validación para asegurarme de que el usuario llena los campos. Los controles de validación funcionaban de una manera extraña, y además aparecía este error: Invalid postback or callback argument. Event validation is [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy trabajando con:<br />
ASP.NET 2.0.50727<br />
Extensiones Ajax 1.0</p>
<p>Puse un UpdatePanel que contiene campos que el usuario va a llenar.  Puse controles de validación para asegurarme de que el usuario llena los campos.  Los controles de validación funcionaban de una manera extraña, y además aparecía este error:</p>
<p><code>Invalid postback or callback argument.  Event validation is enabled using
<pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.</code></p>
<p>Estuve investigando y resulta ser que los controles de validación no funcionan dentro de un UpdatePanel.  Encontrarás más información aquí:<br />
<a href="http://forums.asp.net/t/1116324.aspx">http://forums.asp.net/t/1116324.aspx</a>  (lee el segundo post).</p>
<p>Lo bueno es que hay una manera de darle la vuelta a este problema.</p>
<p>La razón del problema y la solución se encuentra aquí:<br />
<a href="http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx">http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx</a></p>
<p>Pero te la traduzco. <img src='http://www.viale.mx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Tienes que bajarte <a href='http://www.viale.com.mx/wp-content/uploads/2007/06/validadores.zip' title='Validadores Ajax UpdatePanel'>estos archivos</a> y ponerlos en el fólder <code>bin</code> de tu aplicación.</p>
<p>Después de eso, abre tu archivo<code>web.config</code> y dentro de la sección <code>Pages</code> teclea lo siguiente:</p>
<div class="igBar"><span id="lxml-16"><a href="#" onclick="javascript:showPlainTxt('xml-16'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-16">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;tagMapping<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.CompareValidator"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.CustomValidator"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.RangeValidator"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.RegularExpressionValidator"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.RequiredFieldValidator"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">tagType</span>=<span style="color: #ff0000;">"System.Web.UI.WebControls.ValidationSummary"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">mappedTagType</span>=<span style="color: #ff0000;">"Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/tagMapping<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Yo lo probé y funciona perfectamente!</p>
<p>Más adelante Microsoft sacará un parche para no tener que hacer este truco, así que si se te presenta este problema, te recomiendo primero bajarte la versión más nueva de ASP.NET y de las Extensiones de Ajax.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2007/06/07/los-controles-de-validacion-no-funcionan-dentro-de-un-updatepanel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sys.Debug.isDebug es nulo o no es un objeto</title>
		<link>http://www.viale.mx/2007/06/07/sysdebugisdebug-es-nulo-o-no-es-un-objeto/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sysdebugisdebug-es-nulo-o-no-es-un-objeto</link>
		<comments>http://www.viale.mx/2007/06/07/sysdebugisdebug-es-nulo-o-no-es-un-objeto/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 22:45:41 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2007/06/07/sysdebugisdebug-es-nulo-o-no-es-un-objeto/</guid>
		<description><![CDATA[Si cuando intentas ver tu aplicación de Ajax en Internet Explorer te marca un error de JavaScript que dice: 'Sys.Debug.isDebug' es nulo o no es un objeto En inglés: 'Sys.Debug.isDebug' is null or not an object lo más probable es que no has instalado las últimas extensiones. Haz lo siguiente: Desinstala las Extensiones de Ajax [...]]]></description>
			<content:encoded><![CDATA[<p>Si cuando intentas ver tu aplicación de Ajax en Internet Explorer te marca un error de JavaScript que dice:</p>
<p><code>'Sys.Debug.isDebug' es nulo o no es un objeto</code></p>
<p>En inglés:<br />
<code>'Sys.Debug.isDebug' is null or not an object</code> </p>
<p>lo más probable es que no has instalado las últimas extensiones.  Haz lo siguiente:</p>
<ol>
<li>Desinstala las Extensiones de Ajax</li>
<li>Reinicia el IIS</li>
<li>Descarga e instala las Extensiones de Ajax más nuevas de <a href="http://www.asp.net">www.asp.net</a></li>
<li>Reinicia el IIS</li>
</ol>
<p>Todo debe funcionar después de estos pasos.</p>
<p>Si no es así, quizás debas revisar tu código ya que han habido algunos cambios a lo largo de la historia de Ajax.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2007/06/07/sysdebugisdebug-es-nulo-o-no-es-un-objeto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando UpdatePanel con Triggers</title>
		<link>http://www.viale.mx/2007/05/31/usando-updatepanel-con-triggers/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=usando-updatepanel-con-triggers</link>
		<comments>http://www.viale.mx/2007/05/31/usando-updatepanel-con-triggers/#comments</comments>
		<pubDate>Thu, 31 May 2007 18:51:07 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2007/05/31/usando-updatepanel-con-triggers/</guid>
		<description><![CDATA[Si estás usando en Ajax un UpdatePanel, es sencillo hacer que éste se actualize si colocas un botón dentro de él mismo, algo como: Clic para mostrar texto plano ASP: &#60;asp:UpdatePanel id="UpdatePanel1" runat="server"&#62; &#160; &#160;&#60;contenttemplate&#62; &#160; &#160; &#160; &#60;asp:Button id="Buscar" runat="server" Text="Buscar"&#62;&#60;/asp:Button&#62; &#160; &#160; &#160; &#60;asp:Label runat="server" Text="Label"&#62;&#60;/asp:Label&#62; &#160; &#160;&#60;/contenttemplate&#62; &#60;/asp:UpdatePanel&#62; Sin embargo, ¿qué ocurre [...]]]></description>
			<content:encoded><![CDATA[<p>Si estás usando en Ajax un UpdatePanel, es sencillo hacer que éste se actualize si colocas un botón dentro de él mismo, algo como:</p>
<div class="igBar"><span id="lasp-19"><a href="#" onclick="javascript:showPlainTxt('asp-19'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-19">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:UpdatePanel id=<span style="color:#CC0000;">"UpdatePanel1"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;contenttemplate&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &lt;asp:Button id=<span style="color:#CC0000;">"Buscar"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Buscar"</span>&gt;&lt;/asp:Button&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &lt;asp:Label runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Label"</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;/contenttemplate&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/asp:UpdatePanel&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Sin embargo, ¿qué ocurre si el botón que debe desencadenar la actualización del <code>UpdatePanel</code> se encuentra fuera del mismo?</p>
<p>Entonces debes añadir un <code>trigger</code> al <code>UpdatePanel</code> para indicarle cuál o cuáles controles deben desencadenar su actualización.  Hazlo así:</p>
<div class="igBar"><span id="lasp-20"><a href="#" onclick="javascript:showPlainTxt('asp-20'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-20">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:Button id=<span style="color:#CC0000;">"Buscar"</span> runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Buscar"</span>&gt;&lt;/asp:Button&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;asp:UpdatePanel id=<span style="color:#CC0000;">"UpdatePanel1"</span> runat=<span style="color:#CC0000;">"server"</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;contenttemplate&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &lt;asp:Label runat=<span style="color:#CC0000;">"server"</span> Text=<span style="color:#CC0000;">"Label"</span>&gt;&lt;/asp:Label&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;/contenttemplate&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;triggers&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &lt;asp:AsyncPostBackTrigger ControlID=<span style="color:#CC0000;">"Buscar"</span> EventName=<span style="color:#CC0000;">"Click"</span>&gt;&lt;/asp:AsyncPostBackTrigger&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&lt;/triggers&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/asp:UpdatePanel&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2007/05/31/usando-updatepanel-con-triggers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

