<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog do Neilor</title>
	<atom:link href="http://blogdoneilor.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogdoneilor.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 21 Jul 2011 11:38:44 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blogdoneilor.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blog do Neilor</title>
		<link>http://blogdoneilor.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogdoneilor.wordpress.com/osd.xml" title="Blog do Neilor" />
	<atom:link rel='hub' href='http://blogdoneilor.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Confirmar o envio de formulário para outro script (cross-page postback)</title>
		<link>http://blogdoneilor.wordpress.com/2009/07/09/confirmar-o-envio-de-formulario-para-outro-script-cross-page-postback/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/07/09/confirmar-o-envio-de-formulario-para-outro-script-cross-page-postback/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 01:18:43 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[asp.net (vb)]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=105</guid>
		<description><![CDATA[Olá! Para apresentar uma caixa de confirmação no cliente antes de um formulário ser processado pelo servidor, no caso de um postback (submit para o mesmo script), estamos acostumados a usar um javascript no evento OnClientClick do botão: &#60;asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return confirm('Enviar formulário?')" PostBackUrl="default.aspx"/&#62; Acontece que, quando o formulário tem que ser processado [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=105&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Olá!</p>
<p style="text-align:left;">Para apresentar uma caixa de confirmação no cliente antes de um formulário ser processado pelo servidor, no caso de um postback (submit para o mesmo script), estamos acostumados a usar um javascript no evento <em>OnClientClick</em> do botão:</p>
<p style="text-align:left;"><code>&lt;asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return confirm('Enviar formulário?')" PostBackUrl="default.aspx"/&gt;</code></p>
<p style="text-align:left;">Acontece que, quando o formulário tem que ser processado por outro script (cross-page postback), esta instrução não funciona pois, quando você confirma o envio é feito um postback comum, e não acontece o redirecionamento ao script desejado. À primeira vista é uma situação estranha e você pode passar alguns minutos tentando descobrir se há algo errado no javascript, mas não vai encontrar.</p>
<p style="text-align:left;">Isso acontece porque, nos casos de cross-page postback, o asp.net implementa scripts de cliente para o redirecionamento do formulário, gerando o seguinte código html:</p>
<p style="text-align:left;"><code>&lt;input type="submit" name="Button1" value="Button" onclick="return confirm('Enviar formulário?');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;quot;Button1&amp;quot;, &amp;quot;&amp;quot;, false, &amp;quot;&amp;quot;, &amp;quot;default.aspx&amp;quot;, false, false))" id="Button1" /&gt;</code></p>
<p style="text-align:left;">Neste código, podemos perceber que a primeira instrução só faz um return do resultado do confirm para o documento e cancela a instrução seguinte.</p>
<p style="text-align:left;">A solução é implementar o confirm dessa forma:</p>
<p style="text-align:left;"><code>&lt;asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="if(!confirm('OK?'))return false;" PostBackUrl="default.aspx"/&gt;</code></p>
<p style="text-align:left;">Dessa forma, só há o <em>return</em> se o visitante clicar em &#8220;cancel&#8221;, do contrário, o post do formulário é executado normalmente.</p>
<p style="text-align:left;">Uma coisa estranha que acontece quando o confirm é inserido num script que tenha validação do asp.net, é pedir a confirmação de envio do form e depois a validação exigir preenchimento de alguns campos.</p>
<p style="text-align:left;">*Eu vi aqui, no <a href="http://aspadvice.com/blogs/joteke/archive/2006/04/30/17118.aspx" target="_blank">Joteke&#8217;s Blog</a></p>
<p style="text-align:left;">Abraços!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=105&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/07/09/confirmar-o-envio-de-formulario-para-outro-script-cross-page-postback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
		<item>
		<title>Editor HTML em seu site com o AJAX Control Toolkit</title>
		<link>http://blogdoneilor.wordpress.com/2009/06/26/editor-html-em-seu-sitecom-o-ajax-control-toolkit/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/06/26/editor-html-em-seu-sitecom-o-ajax-control-toolkit/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:26:18 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[asp.net (vb)]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=93</guid>
		<description><![CDATA[Há muito tempo atrás, em uma galáxia muito, muito distante&#8230; existiam uns programadores asp que se matavam pra fazer editor html no site sem recorrer a componentes pagos, aqueles componentes que davam inveja por serem tão visualmente agradáveis e compatíveis com vários navegadores. Eu fui um deles! Pois é, esse tempo já era mesmo, &#8220;tô [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=93&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Há muito tempo atrás, em uma galáxia muito, muito distante&#8230; existiam uns programadores asp que se matavam pra fazer editor html no site sem recorrer a componentes pagos, aqueles componentes que davam inveja por serem tão visualmente agradáveis e compatíveis com vários navegadores. Eu fui um deles!</p>
<p style="text-align:left;">Pois é, esse tempo já era mesmo, &#8220;tô ficando velho&#8221;, diria o <a href="http://desciclo.pedia.ws/wiki/Coringa" target="_blank">coringa</a>. Há alguns anos a Microsoft disponibilizou o AJAX Control Toolkit, uma coleção de componentes AJAX de fácil integração aos projetos em ASP.net.</p>
<p style="text-align:left;">Um desses componentes é o <a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx" target="_blank">HTMLEditor</a>, que torna &#8220;mamão com açúcar&#8221; a tarefa de disponibilizar um editor em seu site, útil principalmente na área de administração de conteúdo, para seu cliente <span style="text-decoration:line-through;">detonar o site</span> formatar os textos do jeito que ele achar melhor. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="text-align:left;">Primeiro passo: download do AJAXControlToolkitBinary.zip, <a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326" target="_blank">bem aqui</a>. Esta versão é para o framework 3.5. Para o  2.0, você deve pegar uma versão mais antiga, <a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=11121" target="_blank">aqui</a>.</p>
<p style="text-align:left;">Depois de descompactar o arquivo, copie o &#8220;AjaxControlToolkit.dll&#8221; na pasta &#8220;Bin&#8221; da sua aplicação.</p>
<p style="text-align:left;">Cole o código abaixo no início de seu arquivo &#8220;.aspx&#8221;, após a diretiva &#8220;@ Page&#8221;:</p>
<p style="text-align:left;"><code>&lt;%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor" TagPrefix="HTMLEditor" %&gt;</code></p>
<p style="text-align:left;">Após a tag &lt;form &#8230;&gt; do &#8220;.aspx&#8221;, insira o código abaixo, para chamar  o controle <a href="http://www.asp.net/Ajax/Documentation/Live/overview/ScriptManagerOverview.aspx" target="_blank">ScriptManager</a>, que gerencia os scripts de cliente no AJAX ASP.net:</p>
<p style="text-align:left;"><code>&lt;asp:ScriptManager ID="ScriptManager1" runat="server" /&gt;</code></p>
<p style="text-align:left;">E, onde você deseja exibir o editor, insira o código:</p>
<p style="text-align:left;"><code>&lt;HTMLEditor:Editor ID="Editor1" runat="server" Height="300px" Width="100%"  AutoFocus="true" /&gt;</code></p>
<p style="text-align:left;">Se você executar a página neste momento, <strong><em>voilà!</em></strong> Você já vê o editor em funcionamento, com sua configuração de botões padrão.</p>
<p style="text-align:left;">Agora, vamos pegar o conteúdo desse editor para fazer algo útil, não é? Pois bem, insira um &#8220;label&#8221; e um &#8220;button&#8221; no aspx, e no evento &#8220;onclick&#8221; do botão, a instrução:</p>
<p style="text-align:left;"><code>Label1.Text = Editor1.Content</code></p>
<p style="text-align:left;">É só isso? Sim, é.</p>
<p style="text-align:left;">E se você navegar pelo site do <a href="http://www.asp.net/ajax/ajaxcontroltoolkit/samples/Default.aspx" target="_blank">ASP.NET AJAX Control Toolkit</a>, vai achar muita coisa interessante para sua aplicação, com a &#8220;mágica&#8221; do AJAX.</p>
<p style="text-align:left;">Abraços!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=93&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/06/26/editor-html-em-seu-sitecom-o-ajax-control-toolkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
		<item>
		<title>Popups que enganam o firefox</title>
		<link>http://blogdoneilor.wordpress.com/2009/06/17/popups-que-enganam-o-firefox/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/06/17/popups-que-enganam-o-firefox/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 17:11:38 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[Dicas de computeiro]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=84</guid>
		<description><![CDATA[Você está navegando em vários sites com o firefox e percebe que, mesmo com o bloqueador de janelas popup ativado, algumas delas teimam em aparecer? Um dos motivos disso é que, por padrão, o firefox não bloqueia janelas popups originadas de plugins (flash, java, shockwave&#8230;). Para bloqueá-las, você deve acessar as configurações avançadas do firefox. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=84&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Você está navegando em vários sites com o firefox e percebe que, mesmo com o bloqueador de janelas popup ativado, algumas delas teimam em aparecer? Um dos motivos disso é que, por padrão, o firefox não bloqueia janelas popups originadas de plugins (flash, java, shockwave&#8230;).</p>
<p style="text-align:left;">Para bloqueá-las, você deve acessar as configurações avançadas do firefox. Na barra de endereços, digite &#8220;about:config&#8221; e pressione &lt;enter&gt;. Caso apareça uma tela de aviso, clique em “Serei cuidadoso, eu prometo!”. Depois, clique com o botão direito do mouse em uma das opções mostradas e selecione &#8220;Nova opção / Inteira&#8230;&#8221;. Na caixa de diálogo &#8220;Forneça o nome da opção:&#8221;, cole o seguinte texto:</p>
<p><code>privacy.popups.disable_from_plugins</code></p>
<p style="text-align:left;">E no campo seguinte, &#8220;Editar valor inteiro&#8221;, digite &#8220;<strong>2</strong>&#8221; (sem as aspas) e clique em &#8220;OK&#8221;. Agora, basta reiniciar o firefox para a configuração surtir efeito.</p>
<p>Os valores possíveis para esta configuração são:</p>
<p><strong>0</strong> &#8211; permite todos os popups;<br />
<strong>1</strong> &#8211; limita o máximo de popups ao valor definido em &#8220;dom.popup_maximum&#8221;;<br />
<strong>2</strong> &#8211; bloqueia todos os popups, exceto dos sites permitidos;<br />
<strong>3</strong> &#8211; bloqueia todos os popups.</p>
<p style="text-align:left;">Caso você utilize algum site que deixou de exibir os popups após esta configuração, adicione-o na lista de sites permitidos (Ferramentas/Opções/Conteúdo/Exceções&#8230;).</p>
<p>Abraço!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=84&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/06/17/popups-que-enganam-o-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
		<item>
		<title>Validação de CheckBoxList com JavaScript (Custom Validator)</title>
		<link>http://blogdoneilor.wordpress.com/2009/06/16/validacao-de-checkboxlist-com-javascript-custom-validator/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/06/16/validacao-de-checkboxlist-com-javascript-custom-validator/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 14:25:26 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[asp.net (vb)]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=65</guid>
		<description><![CDATA[A validação de CheckBoxList utilizando CustomValidator, no cliente, evita postback ou chamada ajax que dependa do servidor. Isto não elimina a necessidade de validação no code-behind, pois o navegador do usuário pode estar com o javascript desativado, o que &#8220;invalidaria&#8221; esta validação. Neste exemplo, o id do meu CheckBoxlist é &#8220;txt_menus&#8221;. Pois bem, para começar, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=65&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A validação de CheckBoxList utilizando CustomValidator, no cliente, evita postback ou chamada ajax que dependa do servidor. Isto não elimina a necessidade de validação no code-behind, pois o navegador do usuário pode estar com o javascript desativado, o que &#8220;invalidaria&#8221; esta validação.</p>
<p>Neste exemplo, o id do meu CheckBoxlist é &#8220;txt_menus&#8221;. Pois bem, para começar, criamos um campo oculto para guardar a quantidade de items que o CheckBoxList contém:</p>
<p><code>&lt;asp:HiddenField ID="num_itens" runat="server" /&gt;</code></p>
<p>No code-behind (.vb), quando a lista de items for definida, seja manualmente ou através de uma query, insira o código:</p>
<p><code>num_itens.Value = txt_menus.Items.Count - 1</code></p>
<p>Perceba que foi subtraído 1 item do total pois o primeiro item da lista será o &#8220;0&#8243; (zero).</p>
<p>De volta ao código da página (.aspx), próximo ao CheckBoxList, inserimos o bloco do CustomValidator:</p>
<p style="text-align:left;"><code>&lt;asp:CustomValidator ID="ValidaMenus" runat="server" ClientValidationFunction="ValidaMenus"&gt;Selecione alguma opção!&lt;/asp:CustomValidator&gt;</code></p>
<p>E a função JavaScript que fará a validação:</p>
<p style="text-align:left;"><code>function ValidaMenus(source, args)<br />
{<br />
var PrefixoCampos = 'ctl00_ContentPlaceHolder1_'<br />
var MaxItens = document.getElementById(PrefixoCampos + 'num_itens').value;<br />
var Selecionados = 0;<br />
for(i=0; i &lt;= MaxItens; i++)<br />
{<br />
ItemAtual = document.getElementById(PrefixoCampos + 'txt_menus_' + i);<br />
if (ItemAtual.checked == true)<br />
{<br />
Selecionados = Selecionados +1;<br />
}<br />
}<br />
if(Selecionados == 0)<br />
{<br />
return args.IsValid = false;<br />
}<br />
)<br />
</code></p>
<p>Bom, é isso! Depois você personaliza como quiser. No caso de validação de múltiplos controles, recomento o uso do ValidationSummary, sem exibição de &#8220;alert&#8221;, fica mais elegante e personalizável com css. No meu caso, costumo fazer assim:</p>
<p><code>&lt;asp:ValidationSummary ID=&quot;ValidationSummary1&quot; runat=&quot;server&quot; HeaderText=&quot;Para continuar, corrija as seguintes pend&ecirc;ncias:&quot; CssClass=&quot;MsgValidacao&quot; ForeColor=&quot;&quot; /&gt;</code></p>
<p>Abraço!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=65&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/06/16/validacao-de-checkboxlist-com-javascript-custom-validator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
		<item>
		<title>Adicionar item a um dropdownlist após o databind</title>
		<link>http://blogdoneilor.wordpress.com/2009/06/09/adicionar-item-a-um-dropdownlist-apos-o-databind/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/06/09/adicionar-item-a-um-dropdownlist-apos-o-databind/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 15:00:41 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[asp.net (vb)]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=61</guid>
		<description><![CDATA[Quando fazemos uma dropdownlist com opções geradas do banco de dados, e com &#8220;autopostback=true&#8221;, é interessante que o item inicial desta lista seja uma instrução, e não um item válido. Para isso basta incluir o código abaixo após o databind da dropdownlist. ddl_produtos.Items.Insert(0, "selecione um item abaixo")<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=61&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quando fazemos uma dropdownlist com opções geradas do banco de dados, e com &#8220;autopostback=true&#8221;, é interessante que o item inicial desta lista seja uma instrução, e não um item válido.</p>
<p>Para isso basta incluir o código abaixo após o databind da dropdownlist.</p>
<p><code>ddl_produtos.Items.Insert(0, "selecione um item abaixo")</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=61&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/06/09/adicionar-item-a-um-dropdownlist-apos-o-databind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
		<item>
		<title>Bem-vindo(a) ao meu blog!</title>
		<link>http://blogdoneilor.wordpress.com/2009/02/16/bem-vindoa-ao-meu-blog/</link>
		<comments>http://blogdoneilor.wordpress.com/2009/02/16/bem-vindoa-ao-meu-blog/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 23:15:38 +0000</pubDate>
		<dc:creator>blogdoneilor</dc:creator>
				<category><![CDATA[Divagações diversas]]></category>

		<guid isPermaLink="false">http://blogdoneilor.wordpress.com/?p=4</guid>
		<description><![CDATA[Boas-vindas<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=4&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>&lt;Olá! /&gt;</strong></p>
<p>Após algumas tentativas frustradas de ter meu site ou blog,  acredito que agora eu consiga manter um.</p>
<p>Aqui vou escrever (e copiar) sobre diversos assuntos de meu interesse. Não são muitos, é verdade, mas é algo que eu queria fazer há um tempão.</p>
<p>Abraço a todos! Torçam para que eu atualize sempre!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/blogdoneilor.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/blogdoneilor.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/blogdoneilor.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogdoneilor.wordpress.com&amp;blog=6607594&amp;post=4&amp;subd=blogdoneilor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogdoneilor.wordpress.com/2009/02/16/bem-vindoa-ao-meu-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c33f53ca8e473fa8c6c5178b7b97ce88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">blogdoneilor</media:title>
		</media:content>
	</item>
	</channel>
</rss>
