<?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>MXStudio</title>
	<atom:link href="http://www.mxstudio.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mxstudio.com.br</link>
	<description>Macromedia e Adobe - Artigos, colunas, tutorias e muito mais...</description>
	<lastBuildDate>Sun, 19 May 2013 16:15:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>ASP.Net e Excel &#8211; Paginação habilitada ao exportar GridView</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-excel-paginacao-habilitada-ao-exportar-gridview/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-excel-paginacao-habilitada-ao-exportar-gridview/#comments</comments>
		<pubDate>Sun, 19 May 2013 16:15:12 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[exportar para excel]]></category>
		<category><![CDATA[GridView]]></category>
		<category><![CDATA[GridView com paginação habilitada]]></category>
		<category><![CDATA[Northwind da Microsoft]]></category>
		<category><![CDATA[Overrides]]></category>
		<category><![CDATA[paginação]]></category>
		<category><![CDATA[VB.net]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=375950</guid>
		<description><![CDATA[Olá, sejam ben vindos a mais um artigo, onde hoje estaremos vendo em como exportar um GridView com paginação habilitada para arquivo do Excel. Vamos precisar de um banco de dados, onde como sempre estamos fazendo uso do banco de dados Northwind da Microsoft. Caso não o possua , baixe e instale através do link [...]]]></description>
			<content:encoded><![CDATA[<p>Olá, sejam ben vindos a mais um artigo, onde hoje estaremos vendo em como exportar um GridView com paginação habilitada para arquivo do Excel. Vamos precisar de um banco de dados, onde como sempre estamos fazendo uso do banco de dados Northwind da Microsoft. Caso não o possua , baixe e instale através do link abaixo:</p>
<p><a href="http://www.microsoft.com/en-us/download/details.aspx?id=23654" target="_blank">Download Northwind Database</a><br />
O nosso código HTML consiste em um GridView e um Button. Para o GridView I vamos habilitar a paginação usando a propriedade AllowPaging e também especifique no evento OnPageIndexChanging.</p>
<pre class="brush: php; title: ; notranslate">&lt;asp:GridView ID=&quot;GridView1&quot; HeaderStyle-BackColor=&quot;#3AC0F2&quot; HeaderStyle-ForeColor=&quot;White&quot;

RowStyle-BackColor=&quot;#A1DCF2&quot; AlternatingRowStyle-BackColor=&quot;White&quot; AlternatingRowStyle-ForeColor=&quot;#000&quot;

runat=&quot;server&quot; AutoGenerateColumns=&quot;false&quot; AllowPaging=&quot;true&quot; OnPageIndexChanging=&quot;OnPageIndexChanging&quot;&gt;

&lt;Columns&gt;

&lt;asp:BoundField DataField=&quot;ContactName&quot; HeaderText=&quot; Nome de Contato&quot; ItemStyle-Width=&quot;150px&quot; /&gt;

&lt;asp:BoundField DataField=&quot;City&quot; HeaderText=&quot;Cidade&quot; ItemStyle-Width=&quot;100px&quot; /&gt;

&lt;asp:BoundField DataField=&quot;Country&quot; HeaderText=&quot;País&quot; ItemStyle-Width=&quot;100px&quot; /&gt;

&lt;/Columns&gt;

&lt;/asp:GridView&gt;

&lt;br /&gt;

&lt;asp:Button ID=&quot;btnExport&quot; runat=&quot;server&quot; Text=&quot;Exportar para Excel&quot; OnClick = &quot;ExportToExcel&quot; /&gt;</pre>
<p>&nbsp;</p>
<p>E vamos usar os seguintes Namespaces:</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">using System.IO;

using System.Data;

using System.Drawing;

using System.Data.SqlClient;

using System.Configuration; </pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Imports System.IO

Imports System.Data

Imports System.Drawing

Imports System.Data.SqlClient

Imports System.Configuration</pre>
<p>&nbsp;</p>
<p>E para vincular nosso GridView, abaixo está o código para esta tarefa o GridView com os registros da tabela do banco de dados Northwind Clientes.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

this.BindGrid();

}

}

&amp;nbsp;

private void BindGrid()

{

string strConnString = ConfigurationManager.ConnectionStrings[&quot;constr&quot;].ConnectionString;

using (SqlConnection con = new SqlConnection(strConnString))

{

using (SqlCommand cmd = new SqlCommand(&quot;SELECT * FROM Customers&quot;))

{

using (SqlDataAdapter sda = new SqlDataAdapter())

{

cmd.Connection = con;

sda.SelectCommand = cmd;

using (DataTable dt = new DataTable())

{

sda.Fill(dt);

GridView1.DataSource = dt;

GridView1.DataBind();

}

}

}

}

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

If Not IsPostBack Then

Me.BindGrid()

End If

End Sub

&amp;nbsp;

Private Sub BindGrid()

Dim strConnString As String = ConfigurationManager.ConnectionStrings(&quot;constr&quot;).ConnectionString

Using con As New SqlConnection(strConnString)

Using cmd As New SqlCommand(&quot;SELECT * FROM Customers&quot;)

Using sda As New SqlDataAdapter()

cmd.Connection = con

sda.SelectCommand = cmd

Using dt As New DataTable()

sda.Fill(dt)

GridView1.DataSource = dt

GridView1.DataBind()

End Using

End Using

End Using

End Using

End Sub</pre>
<p>Abaixo a tela resultante no browser.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_2.png"><img class="aligncenter size-full wp-image-375961" src="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_2.png" alt="" width="689" height="489" /></a></p>
<p><strong> </strong></p>
<p>Vamos implementar a paginação,  o evento OnPageIndexChanging lida com a Paginação no GridView</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

this.BindGrid();

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub OnPageIndexChanging(sender As Object, e As GridViewPageEventArgs)

GridView1.PageIndex = e.NewPageIndex

Me.BindGrid()

End Sub</pre>
<p>&nbsp;</p>
<p>Abaixo está o código para Exportar o GridView para arquivo Excel com a paginação habilitada. Em primeiro lugar o GridView é novamente preenchido com os dados do banco de dados após a definição AllowPaging para false, em seguida, um loop é executado em todas as linhas da GridView e as cores da linha e a linha alternada são aplicadas às suas células individuais. Se isso não for feito, a cor vai espalhar em todas as células da planilha do Excel, para cada row</p>
<p>Class textmode  é aplicada a todas as células de modo que eles sejam processadas ??como formato texto, conforme o número mso, fazendo isso impedimos grandes números de ficar convertidos em valores exponenciais.</p>
<p>&nbsp;</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void ExportToExcel(object sender, EventArgs e)

{

Response.Clear();

Response.Buffer = true;

Response.AddHeader(&quot;content-disposition&quot;, &quot;attachment;filename=GridViewExport.xls&quot;);

Response.Charset = &quot;&quot;;

Response.ContentType = &quot;application/vnd.ms-excel&quot;;

using (StringWriter sw = new StringWriter())

{

HtmlTextWriter hw = new HtmlTextWriter(sw);

&amp;nbsp;

//para Exportar todas as páginas

GridView1.AllowPaging = false;

this.BindGrid();

&amp;nbsp;

GridView1.HeaderRow.BackColor = Color.White;

foreach (TableCell cell in GridView1.HeaderRow.Cells)

{

cell.BackColor = GridView1.HeaderStyle.BackColor;

}

foreach (GridViewRow row in GridView1.Rows)

{

row.BackColor = Color.White;

foreach (TableCell cell in row.Cells)

{

if (row.RowIndex % 2 == 0)

{

cell.BackColor = GridView1.AlternatingRowStyle.BackColor;

}

else

{

cell.BackColor = GridView1.RowStyle.BackColor;

}

cell.CssClass = &quot;textmode&quot;;

}

}

&amp;nbsp;

GridView1.RenderControl(hw);

&amp;nbsp;

// estilo para formatar números para string

string style = @&quot;&lt;style&gt; .textmode { } &lt;/style&gt;&quot;;

Response.Write(style);

Response.Output.Write(sw.ToString());

Response.Flush();

Response.End();

}

}

&amp;nbsp;

public override void VerifyRenderingInServerForm(Control control)

{

/* Verifica se o controle é processado */

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub ExportToExcel(sender As Object, e As EventArgs)

Response.Clear()

Response.Buffer = True

Response.AddHeader(&quot;content-disposition&quot;, &quot;attachment;filename=GridViewExport.xls&quot;)

Response.Charset = &quot;&quot;

Response.ContentType = &quot;application/vnd.ms-excel&quot;

Using sw As New StringWriter()

Dim hw As New HtmlTextWriter(sw)

&amp;nbsp;

'para exportar todas as páginas

GridView1.AllowPaging = False

Me.BindGrid()

&amp;nbsp;

GridView1.HeaderRow.BackColor = Color.White

For Each cell As TableCell In GridView1.HeaderRow.Cells

cell.BackColor = GridView1.HeaderStyle.BackColor

Next

For Each row As GridViewRow In GridView1.Rows

row.BackColor = Color.White

For Each cell As TableCell In row.Cells

If row.RowIndex Mod 2 = 0 Then

cell.BackColor = GridView1.AlternatingRowStyle.BackColor

Else

cell.BackColor = GridView1.RowStyle.BackColor

End If

cell.CssClass = &quot;textmode&quot;

Next

Next

&amp;nbsp;

GridView1.RenderControl(hw)

' estilo para formatar números para string

Dim style As String = &quot;&lt;style&gt; .textmode { } &lt;/style&gt;&quot;

Response.Write(style)

Response.Output.Write(sw.ToString())

Response.Flush()

Response.[End]()

End Using

End Sub

&amp;nbsp;

Public Overrides Sub VerifyRenderingInServerForm(control As Control)

' Verifica se o controle é processado

End Sub</pre>
<p>E aqui o resultado no Excel.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_3.png"><img class="aligncenter size-full wp-image-375969" src="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_3.png" alt="" width="404" height="578" /></a></p>
<p>Faça o download dos arquivos clicando <a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/ASP.Net-e-Excel-Paginação-habilitada-ao-exportar-GridView.zip">ASP.Net e Excel &#8211; Paginação habilitada ao exportar GridView</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-excel-paginacao-habilitada-ao-exportar-gridview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net e Google Finance API Web Service &#8211; Conversão de moedas e Taxas de Câmbio</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-google-finance-api-web-service-convercao-de-moedas-e-taxas-de-cambio/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-google-finance-api-web-service-convercao-de-moedas-e-taxas-de-cambio/#comments</comments>
		<pubDate>Sun, 12 May 2013 15:19:03 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[Converter de moedas]]></category>
		<category><![CDATA[Google Finance API]]></category>
		<category><![CDATA[Taxas de Câmbio]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=366549</guid>
		<description><![CDATA[Saudações, neste artigo veremos em como obter a Convert Amount , ou seja converter um valor de uma moeda para outra utilizando as mais recentes Taxas de câmbio do Google API com nosso ASP.Net. O nosso HTML Markup consistem em uma caixa de texto para inserir a quantidade, dois DropDownLists para a seleção das Moedas [...]]]></description>
			<content:encoded><![CDATA[<p>Saudações, neste artigo veremos em como obter a Convert Amount , ou seja converter um valor de uma moeda para outra utilizando as mais recentes Taxas de câmbio do Google API com nosso ASP.Net. O nosso HTML Markup consistem em uma caixa de texto para inserir a quantidade, dois DropDownLists para a seleção das Moedas e um botão para converter a moeda.</p>
<pre class="brush: php; title: ; notranslate">&lt;asp:TextBox ID = &quot;txtAmount&quot; runat = &quot;server&quot; Text = &quot;1&quot;&gt;&lt;/asp:TextBox&gt;

&lt;asp:DropDownList ID=&quot;ddlFrom&quot; runat=&quot;server&quot;&gt;

&lt;asp:ListItem Value=&quot;USD&quot; Selected = &quot;true&quot; Text=&quot;United States Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EUR&quot; Text=&quot;Euro €&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;GBP&quot; Text=&quot;United Kingdom Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JPY&quot; Text=&quot;Japan Yen ¥&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AFN&quot; Text=&quot;Afghanistan Afghanis ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ALL&quot; Text=&quot;Albania Leke Lek&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DZD&quot; Text=&quot;Algeria Dinars DA&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ARS&quot; Text=&quot;Argentina Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AUD&quot; Text=&quot;Australia Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BSD&quot; Text=&quot;Bahamas Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BHD&quot; Text=&quot;Bahrain Dinars BD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BDT&quot; Text=&quot;Bangladesh Taka Tk&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BBD&quot; Text=&quot;Barbados Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BMD&quot; Text=&quot;Bermuda Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BRL&quot; Text=&quot;Brazil Reais R$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BGN&quot; Text=&quot;Bulgaria Leva ??&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CAD&quot; Text=&quot;Canada Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XOF&quot; Text=&quot;CFA Francs BCEAO CFAF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XAF&quot; Text=&quot;CFA Francs BEAC CFAF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XPF&quot; Text=&quot;CFP Francs &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CLP&quot; Text=&quot;Chile Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CNY&quot; Text=&quot;China Yuan Renminbi ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;COP&quot; Text=&quot;Colombia Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CRC&quot; Text=&quot;Costa Rica Colones ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HRK&quot; Text=&quot;Croatia Kuna kn&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CYP&quot; Text=&quot;Cyprus Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CZK&quot; Text=&quot;Czech Republic Koruny K?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DKK&quot; Text=&quot;Denmark Kroner kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DOP&quot; Text=&quot;Dominican Republic Pesos RD$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XCD&quot; Text=&quot;East Caribbean Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EGP&quot; Text=&quot;Egypt Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EEK&quot; Text=&quot;Estonia Krooni kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;FJD&quot; Text=&quot;Fiji Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HKD&quot; Text=&quot;Hong Kong Dollars ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HUF&quot; Text=&quot;Hungary Forint Ft&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ISK&quot; Text=&quot;Iceland Kronur kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XDR&quot; Text=&quot;IMF Special Drawing Rights &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;INR&quot; Text=&quot;India Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IDR&quot; Text=&quot;Indonesia Rupiahs Rp&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IRR&quot; Text=&quot;Iran Rials ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IQD&quot; Text=&quot;Iraq Dinars ID&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ILS&quot; Text=&quot;Israel New Shekels ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JMD&quot; Text=&quot;Jamaica Dollars J$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JOD&quot; Text=&quot;Jordan Dinars JD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KZT&quot; Text=&quot;Kazakhstan Tenge ??&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KES&quot; Text=&quot;Kenya Shillings K Sh&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KWD&quot; Text=&quot;Kuwait Dinars KD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;LBP&quot; Text=&quot;Lebanon Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MYR&quot; Text=&quot;Malaysia Ringgits RM&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MTL&quot; Text=&quot;Malta Liri Lm&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MUR&quot; Text=&quot;Mauritius Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MXN&quot; Text=&quot;Mexico Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MAD&quot; Text=&quot;Morocco Dirhams DH&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NZD&quot; Text=&quot;New Zealand Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NGN&quot; Text=&quot;Nigeria Nairas ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NOK&quot; Text=&quot;Norway Kroner kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;OMR&quot; Text=&quot;Oman Rials ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PKR&quot; Text=&quot;Pakistan Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XPD&quot; Text=&quot;Palladium Ounces &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PEN&quot; Text=&quot;Peru Nuevos Soles S/.&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PHP&quot; Text=&quot;Philippines Pesos Php&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PLN&quot; Text=&quot;Poland Zlotych z?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;QAR&quot; Text=&quot;Qatar Riyals ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;RON&quot; Text=&quot;Romania New Lei lei&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;RUB&quot; Text=&quot;Russia Rubles ???&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SAR&quot; Text=&quot;Saudi Arabia Riyals ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XAG&quot; Text=&quot;Silver Ounces &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SGD&quot; Text=&quot;Singapore Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ZAR&quot; Text=&quot;South Africa Rand R&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KRW&quot; Text=&quot;South Korea Won ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;LKR&quot; Text=&quot;Sri Lanka Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SDG&quot; Text=&quot;Sudan Pounds &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SEK&quot; Text=&quot;Sweden Kronor kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CHF&quot; Text=&quot;Switzerland Francs CHF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TWD&quot; Text=&quot;Taiwan New Dollars NT$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;THB&quot; Text=&quot;Thailand Baht ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TTD&quot; Text=&quot;Trinidad and Tobago Dollars TT$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TND&quot; Text=&quot;Tunisia Dinars TD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TRY&quot; Text=&quot;Turkey Lira YTL&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AED&quot; Text=&quot;United Arab Emirates Dirhams Dh&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;VEF&quot; Text=&quot;Venezuela Bolivares Fuertes &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;VND&quot; Text=&quot;Vietnam Dong ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ZMK&quot; Text=&quot;Zambia Kwacha ZK&quot;&gt;&lt;/asp:ListItem&gt;

&lt;/asp:DropDownList&gt;

Converter para

&lt;asp:DropDownList ID=&quot;ddlTo&quot; runat=&quot;server&quot;&gt;

&lt;asp:ListItem Value=&quot;USD&quot; Text=&quot;United States Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EUR&quot; Text=&quot;Euro €&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;GBP&quot; Text=&quot;United Kingdom Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JPY&quot; Text=&quot;Japan Yen ¥&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AFN&quot; Text=&quot;Afghanistan Afghanis ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ALL&quot; Text=&quot;Albania Leke Lek&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DZD&quot; Text=&quot;Algeria Dinars DA&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ARS&quot; Text=&quot;Argentina Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AUD&quot; Text=&quot;Australia Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BSD&quot; Text=&quot;Bahamas Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BHD&quot; Text=&quot;Bahrain Dinars BD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BDT&quot; Text=&quot;Bangladesh Taka Tk&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BBD&quot; Text=&quot;Barbados Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BMD&quot; Text=&quot;Bermuda Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BRL&quot; Text=&quot;Brazil Reais R$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;BGN&quot; Text=&quot;Bulgaria Leva ??&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CAD&quot; Text=&quot;Canada Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XOF&quot; Text=&quot;CFA Francs BCEAO CFAF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XAF&quot; Text=&quot;CFA Francs BEAC CFAF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XPF&quot; Text=&quot;CFP Francs &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CLP&quot; Text=&quot;Chile Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CNY&quot; Text=&quot;China Yuan Renminbi ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;COP&quot; Text=&quot;Colombia Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CRC&quot; Text=&quot;Costa Rica Colones ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HRK&quot; Text=&quot;Croatia Kuna kn&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CYP&quot; Text=&quot;Cyprus Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CZK&quot; Text=&quot;Czech Republic Koruny K?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DKK&quot; Text=&quot;Denmark Kroner kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;DOP&quot; Text=&quot;Dominican Republic Pesos RD$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XCD&quot; Text=&quot;East Caribbean Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EGP&quot; Text=&quot;Egypt Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;EEK&quot; Text=&quot;Estonia Krooni kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;FJD&quot; Text=&quot;Fiji Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HKD&quot; Text=&quot;Hong Kong Dollars ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;HUF&quot; Text=&quot;Hungary Forint Ft&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ISK&quot; Text=&quot;Iceland Kronur kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XDR&quot; Text=&quot;IMF Special Drawing Rights &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;INR&quot; Selected = &quot;True&quot; Text=&quot;India Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IDR&quot; Text=&quot;Indonesia Rupiahs Rp&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IRR&quot; Text=&quot;Iran Rials ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;IQD&quot; Text=&quot;Iraq Dinars ID&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ILS&quot; Text=&quot;Israel New Shekels ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JMD&quot; Text=&quot;Jamaica Dollars J$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;JOD&quot; Text=&quot;Jordan Dinars JD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KZT&quot; Text=&quot;Kazakhstan Tenge ??&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KES&quot; Text=&quot;Kenya Shillings K Sh&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KWD&quot; Text=&quot;Kuwait Dinars KD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;LBP&quot; Text=&quot;Lebanon Pounds £&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MYR&quot; Text=&quot;Malaysia Ringgits RM&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MTL&quot; Text=&quot;Malta Liri Lm&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MUR&quot; Text=&quot;Mauritius Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MXN&quot; Text=&quot;Mexico Pesos $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;MAD&quot; Text=&quot;Morocco Dirhams DH&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NZD&quot; Text=&quot;New Zealand Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NGN&quot; Text=&quot;Nigeria Nairas ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;NOK&quot; Text=&quot;Norway Kroner kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;OMR&quot; Text=&quot;Oman Rials ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PKR&quot; Text=&quot;Pakistan Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XPD&quot; Text=&quot;Palladium Ounces &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PEN&quot; Text=&quot;Peru Nuevos Soles S/.&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PHP&quot; Text=&quot;Philippines Pesos Php&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;PLN&quot; Text=&quot;Poland Zlotych z?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;QAR&quot; Text=&quot;Qatar Riyals ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;RON&quot; Text=&quot;Romania New Lei lei&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;RUB&quot; Text=&quot;Russia Rubles ???&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SAR&quot; Text=&quot;Saudi Arabia Riyals ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;XAG&quot; Text=&quot;Silver Ounces &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SGD&quot; Text=&quot;Singapore Dollars $&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ZAR&quot; Text=&quot;South Africa Rand R&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;KRW&quot; Text=&quot;South Korea Won ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;LKR&quot; Text=&quot;Sri Lanka Rupees ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SDG&quot; Text=&quot;Sudan Pounds &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;SEK&quot; Text=&quot;Sweden Kronor kr&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;CHF&quot; Text=&quot;Switzerland Francs CHF&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TWD&quot; Text=&quot;Taiwan New Dollars NT$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;THB&quot; Text=&quot;Thailand Baht ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TTD&quot; Text=&quot;Trinidad and Tobago Dollars TT$&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TND&quot; Text=&quot;Tunisia Dinars TD&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;TRY&quot; Text=&quot;Turkey Lira YTL&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;AED&quot; Text=&quot;United Arab Emirates Dirhams Dh&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;VEF&quot; Text=&quot;Venezuela Bolivares Fuertes &quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;VND&quot; Text=&quot;Vietnam Dong ?&quot;&gt;&lt;/asp:ListItem&gt;

&lt;asp:ListItem Value=&quot;ZMK&quot; Text=&quot;Zambia Kwacha ZK&quot;&gt;&lt;/asp:ListItem&gt;

&lt;/asp:DropDownList&gt;

&lt;asp:Button ID=&quot;btnConvert&quot; runat=&quot;server&quot; Text=&quot;Converter&quot; OnClick = &quot;Convert&quot; /&gt;</pre>
<p>E iremos usar os seguintes Namespaces:</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">using System.Net;

using System.Web.Script.Serialization;</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Imports System.Net

Imports System.Web.Script.Serialization</pre>
<p>E teremos a classe para manter os valores de conversão de moeda, desde que o Google API retorne as taxas de conversão de moeda em formato JSON, vamos ter que fazer uso de uma classe para converter a string JSON para objeto C # usando JavaScriptSerializer.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">public class Rate

{

public string to { get; set; }

public string from { get; set; }

public double rate { get; set; }

}</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Public Class Rate

Public Property [to]() As String

Get

Return _to

End Get

Set(value As String)

_to = value

End Set

End Property

Private _to As String

Public Property from() As String

Get

Return _from

End Get

Set(value As String)

_from = value

End Set

End Property

Private _from As String

Public Property rate() As Double

Get

Return _rate

End Get

Set(value As Double)

_rate = value

End Set

End Property

Private _rate As Double

End Class</pre>
<p>E agora vamos converter o Valor de uma moeda para outra, utilizando Currency Exchange Rates. No clique do botão Converter é feita uma chamada para o Google Exchange API usando a classe WebClient com o da moeda ou seja, a moeda atual e para a moeda que você deseja converter. O Service, em seguida, retorna uma string JSON que contém a taxa de câmbio atual de acordo com o mercado. Agora, a taxa de câmbio é multiplicada pela quantidade,  para obter o Valor Convertido.</p>
<p><strong>C#</strong></p>
<p>[/hp]protected void Convert(object sender, EventArgs e)</p>
<p>{</p>
<p>double amount = 0d;</p>
<p>if (double.TryParse(txtAmount.Text.Trim(), out amount))</p>
<p>{</p>
<p>string url = string.Format(&#8220;http://rate-exchange.appspot.com/currency?from={0}&amp;to={1}&#8221;, ddlFrom.SelectedItem.Value, ddlTo.SelectedItem.Value);</p>
<p>WebClient client = new WebClient();</p>
<p>string rates = client.DownloadString(url);</p>
<p>Rate rate = new JavaScriptSerializer().Deserialize&lt;Rate&gt;(rates);</p>
<p>double converted_amount = amount * rate.rate;</p>
<p>string message = ddlFrom.SelectedItem.Value + &#8220;: &#8221; + amount + &#8220;\\n&#8221;;</p>
<p>message += ddlTo.SelectedItem.Value + &#8220;: &#8221; + converted_amount + &#8220;\\n&#8221;;</p>
<p>message += &#8220;Taxa: 1 &#8221; + ddlFrom.SelectedItem.Value + &#8221; = &#8221; + rate.rate + &#8221; &#8221; + ddlTo.SelectedItem.Value;</p>
<p>ClientScript.RegisterStartupScript(this.GetType(), &#8220;alert&#8221;, &#8220;alert(&#8216;&#8221; + message + &#8220;&#8216;);&#8221;, true);</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>ClientScript.RegisterStartupScript(this.GetType(), &#8220;alert&#8221;, &#8220;alert(Valor do montante inválid006F.&#8217;);&#8221;, true);</p>
<p>}</p>
<p>}[/php]</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub Convert(sender As Object, e As EventArgs)

Dim amount As Double = 0.0

If Double.TryParse(txtAmount.Text.Trim(), amount) Then

Dim url As String = String.Format(&quot;http://rate-exchange.appspot.com/currency?from={0}&amp;to={1}&quot;, ddlFrom.SelectedItem.Value, ddlTo.SelectedItem.Value)

Dim client As New WebClient()

Dim rates As String = client.DownloadString(url)

Dim rate As Rate = New JavaScriptSerializer().Deserialize(Of Rate)(rates)

Dim converted_amount As Double = amount * rate.rate

Dim message As String = ddlFrom.SelectedItem.Value &amp; &quot;: &quot; &amp; amount &amp; &quot;\n&quot;

message &amp;= ddlTo.SelectedItem.Value &amp; &quot;: &quot; &amp; converted_amount &amp; &quot;\n&quot;

message &amp;= &quot;Rate: 1 &quot; &amp; ddlFrom.SelectedItem.Value &amp; &quot; = &quot; &amp; rate.rate &amp; &quot; &quot; &amp; ddlTo.SelectedItem.Value

ClientScript.RegisterStartupScript(Me.[GetType](), &quot;alert&quot;, &quot;alert('&quot; &amp; message &amp; &quot;');&quot;, True)

Else

ClientScript.RegisterStartupScript(Me.[GetType](), &quot;alert&quot;, &quot;alert('Valor do montante inválido

.');&quot;, True)

End If

End Sub</pre>
<p>Aqui a tela no browser:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_1.png"><img class="aligncenter size-full wp-image-366571" src="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_1.png" alt="" width="753" height="490" /></a></p>
<p>E clique no link abaixo para fazer o download dos arquivos deste artigo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/ASP.Net-e-Google-Finance-API-Web-Service-Converter-de-moedas-e-Taxas-de-Câmbio.zip">Download</a></p>
<p>Até mais.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-google-finance-api-web-service-convercao-de-moedas-e-taxas-de-cambio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; Preencher jQuery Accordion com dados do database</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-preencher-jquery-accordion-com-dados-do-database/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-preencher-jquery-accordion-com-dados-do-database/#comments</comments>
		<pubDate>Sat, 04 May 2013 21:34:30 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Accordion]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery.min.js]]></category>
		<category><![CDATA[Preencher]]></category>
		<category><![CDATA[selected_tab.UniqueID]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=354896</guid>
		<description><![CDATA[?Olá amigos, neste artigo veremos como manter ou re-manter a guia selecionada em jQuery UI Tabs no PostBack em ASP.Net. Imagine a seguinte situação, o plugin jQuery UI Tabs não faz parte do ViewState, portanto, sua seleção de Tab é perdida. Para solucionar isso, vamos precisar guardar tab index selecionado em um campo do tipo [...]]]></description>
			<content:encoded><![CDATA[<p>?Olá amigos, neste artigo veremos como manter ou re-manter a guia selecionada em jQuery UI Tabs no PostBack em ASP.Net. Imagine a seguinte situação, o plugin jQuery UI Tabs não faz parte do ViewState, portanto, sua seleção de Tab é perdida. Para solucionar isso, vamos precisar guardar tab index selecionado em um campo do tipo Hidden  antes do PostBack e depois buscar o seu valor de volta no carregamento da página e definir a guia selecionada utilizando o índice armazenado no campo oculto. Para manter a jQuery UI Tabs selecionada no PostBack, você vai notar que iremos fazer o uso do controle ASP.Net HiddenField que é definido com o índice da Tab selecionada atual assim que a tab é selecionada usando o select event handler da Tabs jQuery UI.<br />
E, em seguida, na Tab Index selecionada é buscada de volta no campo Hidden  e usando o índice a jQuery Tab é selecionada.</p>
<p>&nbsp;</p>
<pre class="brush: php; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;link href=&quot;http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/themes/start/jquery-ui.css&quot;

rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

var selected_tab = 1;

$(function () {

var tabs = $(&quot;#tabs&quot;).tabs({

select: function (e, i) {

selected_tab = i.index;

}

});

selected_tab = $(&quot;[id$=selected_tab]&quot;).val() != &quot;&quot; ? parseInt($(&quot;[id$=selected_tab]&quot;).val()) : 0;

tabs.tabs('select', selected_tab);

$(&quot;form&quot;).submit(function () {

$(&quot;[id$=selected_tab]&quot;).val(selected_tab);

});

});

&amp;nbsp;

&lt;/script&gt;

&lt;div id=&quot;tabs&quot;&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;#tabs-1&quot;&gt;Tab 1&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;#tabs-2&quot;&gt;Tab 2&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;#tabs-3&quot;&gt;Tab 3&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div id=&quot;tabs-1&quot;&gt;

Content 1

&lt;/div&gt;

&lt;div id=&quot;tabs-2&quot;&gt;

Content 2

&lt;/div&gt;

&lt;div id=&quot;tabs-3&quot;&gt;

Content 3

&lt;/div&gt;

&lt;/div&gt;

&lt;asp:HiddenField ID=&quot;selected_tab&quot; runat=&quot;server&quot; /&gt;

&lt;asp:Button ID=&quot;Button1&quot; runat=&quot;server&quot; Text=&quot;Fazer PostBack&quot; /&gt;</pre>
<p>&nbsp;</p>
<p>Agora, no server side estaremos buscando o valor do campo Hidden da coleção Request.Form e, em seguida, configurá-lo de volta para o campo Hidden . Isso é feito porque os valores set client side não se reflete diretamente na propriedade Value.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void Page_Load(object sender, EventArgs e)

{

selected_tab.Value = Request.Form[selected_tab.UniqueID];

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

selected_tab.Value = Request.Form(selected_tab.UniqueID)

End Sub</pre>
<p>&nbsp;</p>
<p>Aqui o resultado no browser.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_.png"><img src="http://www.mxstudio.com.br/wp-content/uploads/2013/05/asp.net_jsmaster_3.fw_.png" alt="" width="551" height="302" /></a></p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p>E clicando abaixo você poderá fazer o download dos códigos utilizados neste artigo.</p>
<p>&nbsp;</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/05/ASP.Net-Preencher-jQuery-Accordion-com-dados-do-database.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-preencher-jquery-accordion-com-dados-do-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; GridView vinculando dados com jQuery ou JSON</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-gridview-vinculando-dados-com-jquery-ou-json/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-gridview-vinculando-dados-com-jquery-ou-json/#comments</comments>
		<pubDate>Sat, 27 Apr 2013 20:29:13 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobilidade]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[Cliente Paging Side]]></category>
		<category><![CDATA[GridView]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=345856</guid>
		<description><![CDATA[Saudações amigos programadores neste artigo, veremos como fazer uma paginação no GridView usando jQuery AJAX. Se quiser saber mais sobre jQuery e AJAX no ASP.Net acesse nossos outros artigos. E logicamnte para isso iremos precisar de uma banco de dados, e como sempre estamos usando o Microsoft Northwind. Caso você não o possua, você pode [...]]]></description>
			<content:encoded><![CDATA[<p>Saudações amigos programadores neste artigo, veremos como fazer uma paginação no GridView usando jQuery AJAX. Se quiser saber mais sobre jQuery e AJAX no ASP.Net acesse nossos outros artigos. E logicamnte para isso iremos precisar de uma banco de dados, e como sempre estamos usando o Microsoft Northwind. Caso você não o possua, você pode baixá-lo usando o link fornecido abaixo.</p>
<p><a href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034" target="_blank">Download Northwind Database</a></p>
<p>Abaixo está a nosso código HTML. Onde temos um ASP.Net GridView gvCustomers e um controle HTML DIV onde o Pager será preenchido pela paginação.</p>
<pre class="brush: php; title: ; notranslate">&lt;asp:GridView ID=&quot;gvCustomers&quot; runat=&quot;server&quot; AutoGenerateColumns=&quot;false&quot; RowStyle-BackColor=&quot;#A1DCF2&quot;

HeaderStyle-BackColor=&quot;#3AC0F2&quot; HeaderStyle-ForeColor=&quot;White&quot;&gt;

&lt;Columns&gt;

&lt;asp:BoundField ItemStyle-Width=&quot;150px&quot; DataField=&quot;CustomerID&quot; HeaderText=&quot;CustomerID&quot; /&gt;

&lt;asp:BoundField ItemStyle-Width=&quot;150px&quot; DataField=&quot;ContactName&quot; HeaderText=&quot;Contact Name&quot; /&gt;

&lt;asp:BoundField ItemStyle-Width=&quot;150px&quot; DataField=&quot;City&quot; HeaderText=&quot;City&quot; /&gt;

&lt;/Columns&gt;

&lt;/asp:GridView&gt;

&lt;br /&gt;

&lt;div&gt;&lt;/div&gt;</pre>
<p>&nbsp;</p>
<p>Vamos precisar dos seguintes Namespaces:</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">using System.Data;

using System.Web.Services;

using System.Configuration;

using System.Data.SqlClient; </pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Imports System.Data

Imports System.Web.Services

Imports System.Configuration

Imports System.Data.SqlClient</pre>
<p>&nbsp;</p>
<p>E vamos preencher nosso GridView com dados. No evento Page Load da página vamos preencher o GridView com dados fictícios, para que possamos usar sua estrutura Table HTML para preencher os dados usando jQuery. Foi criado uma variável PageSize que irá decidir o número de registros a serem exibidos por página no GridView. Lembrando que, o DataTable sendo preenchido tem as mesmas colunas que serão retornados da consulta SQL</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">private static int PageSize = 10;

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

BindDummyRow();

}

}

&amp;nbsp;

private void BindDummyRow()

{

DataTable dummy = new DataTable();

dummy.Columns.Add(&quot;CustomerID&quot;);

dummy.Columns.Add(&quot;ContactName&quot;);

dummy.Columns.Add(&quot;City&quot;);

dummy.Rows.Add();

gvCustomers.DataSource = dummy;

gvCustomers.DataBind();

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Private Shared PageSize As Integer = 10

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

If Not IsPostBack Then

BindDummyRow()

End If

End Sub

&amp;nbsp;

Private Sub BindDummyRow()

Dim dummy As New DataTable()

dummy.Columns.Add(&quot;CustomerID&quot;)

dummy.Columns.Add(&quot;ContactName&quot;)

dummy.Columns.Add(&quot;City&quot;)

dummy.Rows.Add()

gvCustomers.DataSource = dummy

gvCustomers.DataBind()

End Sub</pre>
<p>&nbsp;</p>
<p>Aqui teremos a paginação no SQL Server com Stored Procedure. Segue-se a stored procedure que irá realizar a paginação no banco de dados SQL Server e retorno por dados da página.</p>
<pre class="brush: php; title: ; notranslate">CREATE PROCEDURE [dbo].[GetCustomers_Pager]

@PageIndex INT = 1

,@PageSize INT = 10

,@RecordCount INT OUTPUT

AS

BEGIN

SET NOCOUNT ON;

SELECT ROW_NUMBER() OVER

(

ORDER BY [CustomerID] ASC

)AS RowNumber

,[CustomerID]

,[CompanyName]

,[ContactName]

,[City]

INTO #Results

FROM [Customers]

&amp;nbsp;

SELECT @RecordCount = COUNT(*)

FROM #Results

&amp;nbsp;

SELECT * FROM #Results

WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1

&amp;nbsp;

DROP TABLE #Results

END</pre>
<p>&nbsp;</p>
<p>Abaixo está o Web Method que está sendo chamado pela função AJAX jQuery que preenche o GridView com os dados e também faz a paginação. O PageIndex é passado como parâmetro do lado do cliente com base em que página é clicado pelo usuário, enquanto o PageSize que começa a partir da variável estática que foi declarada. Com base nesses parâmetros, podemos buscar os registros. Os registros localizados junto com a contagem total de registro são enviados via Client Side como string XML. Nota: A contagem total de registro é necessária para preencher pager.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate"> [WebMethod]

public static string GetCustomers(int pageIndex)

{

string query = &quot;[GetCustomers_Pager]&quot;;

SqlCommand cmd = new SqlCommand(query);

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue(&quot;@PageIndex&quot;, pageIndex);

cmd.Parameters.AddWithValue(&quot;@PageSize&quot;, PageSize);

cmd.Parameters.Add(&quot;@RecordCount&quot;, SqlDbType.Int, 4).Direction = ParameterDirection.Output;

return GetData(cmd, pageIndex).GetXml();

}

&amp;nbsp;

private static DataSet GetData(SqlCommand cmd, int pageIndex)

{

string strConnString = ConfigurationManager.ConnectionStrings[&quot;conString&quot;].ConnectionString;

using (SqlConnection con = new SqlConnection(strConnString))

{

using (SqlDataAdapter sda = new SqlDataAdapter())

{

cmd.Connection = con;

sda.SelectCommand = cmd;

using (DataSet ds = new DataSet())

{

sda.Fill(ds, &quot;Customers&quot;);

DataTable dt = new DataTable(&quot;Pager&quot;);

dt.Columns.Add(&quot;PageIndex&quot;);

dt.Columns.Add(&quot;PageSize&quot;);

dt.Columns.Add(&quot;RecordCount&quot;);

dt.Rows.Add();

dt.Rows[0][&quot;PageIndex&quot;] = pageIndex;

dt.Rows[0][&quot;PageSize&quot;] = PageSize;

dt.Rows[0][&quot;RecordCount&quot;] = cmd.Parameters[&quot;@RecordCount&quot;].Value;

ds.Tables.Add(dt);

return ds;

}

}

}

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">&lt; WebMethod()&gt; _

Public Shared Function GetCustomers(pageIndex As Integer) As String

Dim query As String = &quot;[GetCustomers_Pager]&quot;

Dim cmd As New SqlCommand(query)

cmd.CommandType = CommandType.StoredProcedure

cmd.Parameters.AddWithValue(&quot;@PageIndex&quot;, pageIndex)

cmd.Parameters.AddWithValue(&quot;@PageSize&quot;, PageSize)

cmd.Parameters.Add(&quot;@RecordCount&quot;, SqlDbType.Int, 4).Direction = ParameterDirection.Output

Return GetData(cmd, pageIndex).GetXml()

End Function

&amp;nbsp;

Private Shared Function GetData(cmd As SqlCommand, pageIndex As Integer) As DataSet

Dim strConnString As String = ConfigurationManager.ConnectionStrings(&quot;conString&quot;).ConnectionString

Using con As New SqlConnection(strConnString)

Using sda As New SqlDataAdapter()

cmd.Connection = con

sda.SelectCommand = cmd

Using ds As New DataSet()

sda.Fill(ds, &quot;Customers&quot;)

Dim dt As New DataTable(&quot;Pager&quot;)

dt.Columns.Add(&quot;PageIndex&quot;)

dt.Columns.Add(&quot;PageSize&quot;)

dt.Columns.Add(&quot;RecordCount&quot;)

dt.Rows.Add()

dt.Rows(0)(&quot;PageIndex&quot;) = pageIndex

dt.Rows(0)(&quot;PageSize&quot;) = PageSize

dt.Rows(0)(&quot;RecordCount&quot;) = cmd.Parameters(&quot;@RecordCount&quot;).Value

ds.Tables.Add(dt)

Return ds

End Using

End Using

End Using

End Function</pre>
<p><strong> </strong></p>
<p>Abaixo está a implementação Client Side, aqui no evento load do jQuery o GridView é preenchido com PageIndex 1 usando o método GetCustomers que preenche o GridView que foi inicialmente preenchido com dados fictícios. Usando o Record Count, o pager é preenchido dentro do HTML DIV usando o jQuery Plugin ASPSnippets_Pager..</p>
<pre class="brush: php; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;ASPSnippets_Pager.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

$(function () {

GetCustomers(1);

});

$(&quot;.Pager .page&quot;).live(&quot;click&quot;, function () {

GetCustomers(parseInt($(this).attr('page')));

});

function GetCustomers(pageIndex) {

$.ajax({

type: &quot;POST&quot;,

url: &quot;Default.aspx/GetCustomers&quot;,

data: '{pageIndex: ' + pageIndex + '}',

contentType: &quot;application/json; charset=utf-8&quot;,

dataType: &quot;json&quot;,

success: OnSuccess,

failure: function (response) {

alert(response.d);

},

error: function (response) {

alert(response.d);

}

});

}

&amp;nbsp;

function OnSuccess(response) {

var xmlDoc = $.parseXML(response.d);

var xml = $(xmlDoc);

var customers = xml.find(&quot;Customers&quot;);

var row = $(&quot;[id*=gvCustomers] tr:last-child&quot;).clone(true);

$(&quot;[id*=gvCustomers] tr&quot;).not($(&quot;[id*=gvCustomers] tr:first-child&quot;)).remove();

$.each(customers, function () {

var customer = $(this);

$(&quot;td&quot;, row).eq(0).html($(this).find(&quot;CustomerID&quot;).text());

$(&quot;td&quot;, row).eq(1).html($(this).find(&quot;ContactName&quot;).text());

$(&quot;td&quot;, row).eq(2).html($(this).find(&quot;City&quot;).text());

$(&quot;[id*=gvCustomers]&quot;).append(row);

row = $(&quot;[id*=gvCustomers] tr:last-child&quot;).clone(true);

});

var pager = xml.find(&quot;Pager&quot;);

$(&quot;.Pager&quot;).ASPSnippets_Pager({

ActiveCssClass: &quot;current&quot;,

PagerCssClass: &quot;pager&quot;,

PageIndex: parseInt(pager.find(&quot;PageIndex&quot;).text()),

PageSize: parseInt(pager.find(&quot;PageSize&quot;).text()),

RecordCount: parseInt(pager.find(&quot;RecordCount&quot;).text())

});

};

&lt;/script&gt;</pre>
<p><strong> </strong></p>
<p>Abaixo, os estilos CSS necessários para colocar em sua página.</p>
<pre class="brush: php; title: ; notranslate">&lt;style type=&quot;text/css&quot;&gt;

body

{

font-family: Arial;

font-size: 10pt;

}

.Pager span

{

text-align: center;

color: #999;

display: inline-block;

width: 20px;

background-color: #A1DCF2;

margin-right: 3px;

line-height: 150%;

border: 1px solid #3AC0F2;

}

.Pager a

{

text-align: center;

display: inline-block;

width: 20px;

background-color: #3AC0F2;

color: #fff;

border: 1px solid #3AC0F2;

margin-right: 3px;

line-height: 150%;

text-decoration: none;

}

&lt;/style&gt;</pre>
<p>Abaixo está o screenshot do ASP.Net GridView com o Cliente Paging Side usando jQuery AJAX</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/asp.net_jsmaster_3.fw_.png"><img class="aligncenter size-full wp-image-345883" src="http://www.mxstudio.com.br/wp-content/uploads/2013/04/asp.net_jsmaster_3.fw_.png" alt="" width="519" height="380" /></a></p>
<p>Você pode fazer o download dos arquivos deste artigo, clicando <a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/ASP.Net-GridView-vinculando-dados-com-jQuery-ou-JSON.zip">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-gridview-vinculando-dados-com-jquery-ou-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; Enviando email com Gmail</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-enviando-email-com-gmail/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-enviando-email-com-gmail/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 18:41:29 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[com Gmail]]></category>
		<category><![CDATA[Enviando email]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[smtp.Credentials]]></category>
		<category><![CDATA[smtp.EnableSsl]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=337742</guid>
		<description><![CDATA[Enviando email em ASP.Net com VB.Net. Apenas por curiosidade o Gmail é um serviço gratuito de webmail criado pelo Google em 2004. Atualmente novos cadastros estão abertos ao público e podem ser feitos diretamente no site. Foi anunciado no dia 1 de Abril de 2004, Dia da Mentira, o que lançou inicialmente certa dúvida quanto [...]]]></description>
			<content:encoded><![CDATA[<p>Enviando email em ASP.Net com VB.Net.</p>
<p>Apenas por curiosidade o Gmail é um serviço gratuito de webmail criado pelo Google em 2004. Atualmente novos cadastros estão abertos ao público e podem ser feitos diretamente no site. Foi anunciado no dia 1 de Abril de 2004, Dia da Mentira, o que lançou inicialmente certa dúvida quanto à sua autenticidade.</p>
<p>Tal serviço de webmail revolucionou os demais já existentes. O Gmail oferecia, em seu início, 1GB de espaço de armazenamento. O Yahoo! Mail e MSN Hotmail, que ofereciam 6MB e 2MB, respectivamente, tiveram de rever a questão de espaço disponível para continuarem tendo condições de concorrer comercialmente. O mesmo ocorreu com provedores pagos e gratuitos ao redor do mundo.</p>
<p>Exatamente por esse motivo e para manter o recurso de oferecer mais espaço que a maioria dos provedores, no dia primeiro de Abril de 2005 o sistema lançou seu programa &#8220;infinito + 1&#8243; e começou a aumentar o espaço de armazenamento. A princípio, a taxa de aumento era de 4 bytes por segundo (aprox. 337 KB/dia) e já chegou a ser de 1500 bytes por segundo (aprox. 124 MB/dia). Atualmente esta taxa gira em torno de 4 bytes por segundo (aprox. 345 KB/dia ~ 124MB por ano) e o serviço oferece mais de 10 GB de espaço de armazenamento.</p>
<p>Atualmente, o código que faz o Gmail funcionar é composto de 443.000 linhas de JavaScript (com 978.000 linhas se os comentários forem incluídos). A maior parte foi escrita a mão.</p>
<p>Em outubro de 2012 o serviço da Google obteve aproximadamente 288 milhões de visitantes únicos, contra 286 milhões do serviço da Microsoft (Hotmail) e, em terceiro lugar, ficou o Yahoo! Mail, que obteve 281,7 milhões de visitantes únicos</p>
<p>Para isso iremos usar os seguintes mamespaces, você precisa importa-los para poder funcionar o envio de e-mails.</p>
<pre class="brush: php; title: ; notranslate">Imports System.Net.Mail
Imports System.Net</pre>
<p>Aqui estão as propriedades da classe MailMessage, essas propriedades ~sao requeridas para a classe mail message:<br />
<strong>From </strong>– Endereço de e-mail do remetente<br />
<strong>To </strong>– Destinatário (s) Endereço de E-mail<br />
<strong>CC </strong>– Com cópia<br />
<strong>BCC </strong>– Cópias ocultas<br />
<strong>Subject </strong>– Assunto do e-mail<br />
<strong>Body </strong>– Corpo do e-mail<br />
<strong>IsBodyHtml </strong>– Especifica se corpo contém texto ou marca HTML.<br />
<strong>Attachments </strong>– Anexos.<br />
<strong>ReplyTo </strong>– Responder Para endereço de email.</p>
<p>E agora vamos criar um objeto MailMessage, para o envio do email.</p>
<pre class="brush: php; title: ; notranslate">Dim objmail As MailMessage = New MailMessage()
objmail.From = New MailAddress(&quot;sender@gmail.com&quot;)
objmail.Subject = &quot;Olá&quot;
objmail.Body = &quot;&lt;p&gt; Aqui o Corpo do e-mail &lt;/p&gt;&quot;
objmail.IsBodyHtml = True
objmail.To.Add(New MailAddress(&quot;recepient@gmail.com&quot;))</pre>
<p><strong>Propriedades da Classe SMTP, abaixo estão as propriedades da classe SMTP.</strong></p>
<p><strong>Host </strong>– Seu SMTP Server<br />
<strong>EnableSsl </strong>– Especifique se você host aceita conexões SSL.<br />
<strong>UseDefaultCredentials </strong>– Defina como true para permitir a autenticação com base nas credenciais da conta usada para enviar e-mails<br />
<strong>Credentials </strong>– credenciais de login válido para o servidor SMTP<br />
<strong>Port </strong>– número da porta do servidor SMTP<br />
<strong>Abaixo código com as propriedades configuradas.</strong></p>
<pre class="brush: php; title: ; notranslate">smtp.Host = &quot;smtp.gmail.com&quot;
smtp.EnableSsl = True
Dim NetworkCred As NetworkCredential = New System.Net.NetworkCredential()
NetworkCred.UserName = &quot;seu_email@gmail.com&quot;
NetworkCred.Password = &quot;aqui sua senha&quot;
smtp.UseDefaultCredentials = True
smtp.Credentials = NetworkCred
smtp.Port = 587</pre>
<p><strong>Send Email</strong></p>
<p>O método Smtp.Send(..) é usado para enviar o e-mail. Veja o exemplo abaixo</p>
<pre class="brush: php; title: ; notranslate">smtp.Send(objmail)</pre>
<p>Você pode fazer o download dos arquivos usados neste tutorial clicando <a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/ASP.Net-Enviando-email-com-Gmail.zip">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-enviando-email-com-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net e jQuery &#8211; Galeria de Imagens com jCarousel</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-jquery-galeria-de-imagens-com-jcarousel/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-jquery-galeria-de-imagens-com-jcarousel/#comments</comments>
		<pubDate>Sun, 07 Apr 2013 20:53:11 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[Galeria de Imagens]]></category>
		<category><![CDATA[jCarousel]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=328778</guid>
		<description><![CDATA[Neste artigo vou explicar como implementar uma galeria de Imagens com jQuery Carousel em ASP.Net usando o controle Repeater eo plugin jCarousel jQuery.Quem tiver dúvidas sobre jQuery, porfavor acesse os outros artigos sobre o assunto. jCarousel é um plugin jQuery para controlar uma lista de itens de forma horizontal ou vertical. Os itens, que podem [...]]]></description>
			<content:encoded><![CDATA[<p>Neste artigo vou explicar como implementar uma galeria de Imagens com jQuery Carousel em ASP.Net usando o controle Repeater eo plugin jCarousel jQuery.Quem tiver dúvidas sobre jQuery, porfavor acesse os outros artigos sobre o assunto.</p>
<p>jCarousel é um plugin jQuery para controlar uma lista de itens de forma horizontal ou vertical. Os itens, que podem ser de conteúdo estático HTML ou carregado com (ou sem) AJAX, pode ser rolados para trás e para a frente (com ou sem animação). Podemos ter alguns exemplos como:</p>
<p>• Exemplos estáticos (Simples, vertical, Circular, com autoscrolling, ilustrando as funções de retorno de chamada, com controles externos, com a posição inicial personalizada, múltiplas em uma única página)<br />
• Exemplos dinâmicos (loading de conteúdo dinâmico via JavaScript, loading de conteúdo dinâmico via Ajax, loading de conteúdo dinâmico via Ajax a partir de um script PHP, loading de conteúdo dinâmico via Ajax a partir do fluxo de fotos Flickr, com conteúdo dinâmico carregamento via Ajax da API do Flickr)<br />
• Exemplos especiais (jCarousel como Textscroller, Thickbox 3, com efeitos de animação personalizada)</p>
<p><strong> </strong></p>
<p>Para usar o componente jCarousel, incluir a biblioteca <a href="http://jquery.com">jQuery</a>, o arquivo de origem jCarousel e um arquivo de folha de estilo jCarousel pele dentro da tag &lt;head&gt; de seu documento HTML:</p>
<pre class="brush: php; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;/path/to/jquery-1.4.2.min.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;/path/to/lib/jquery.jcarousel.min.js&quot;&gt;&lt;/script&gt;

&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/path/to/skin/skin.css&quot; /&gt;</pre>
<p>O download package contém alguns exemplo de skin. Sinta-se livre para construir suas próprias skins com base nele.</p>
<p>jCarousel espera uma estrutura muito básica de marcação HTML dentro de seu documento HTML:</p>
<p>[/php]&lt;ul id=&#8221;meucarousel&#8221;&gt;</p>
<p>&lt;!—O conteúdo aqui &#8211;&gt;</p>
<p>&lt;/ul&gt;[/php]</p>
<p>&nbsp;</p>
<p>jCarousel automaticamente quebra a marcação HTML necessária em volta da lista. O atributo class aplica o jCarousel skin &#8220;nome&#8221; para o carrossel.</p>
<p>tag of your HTML document:&#8221;&gt;Para configurar jCarousel, adicione o seguinte código dentro da tag &lt;head&gt; de seu documento HTML:</p>
<p>&nbsp;</p>
<pre class="brush: php; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;

jQuery(document).ready(function() {

jQuery('#mycarousel').jcarousel({

// Configuration goes here

});

});

&lt;/script&gt;</pre>
<p>jCarousel aceita um monte de opções de configuração. Após jCarousel ser  inicializado, a marcação totalmente criado no DOM é:</p>
<pre class="brush: php; title: ; notranslate">&lt;div class=&quot;jcarousel-skin-&lt;em&gt;nome&lt;/em&gt;&quot;&gt;

&lt;div class=&quot;jcarousel-container&quot;&gt;

&lt;div class=&quot;jcarousel-clip&quot;&gt;

&lt;ul class=&quot;jcarousel-list&quot;&gt;

&lt;li&gt;Primeiro item&lt;/li&gt;

&lt;li class=&quot;jcarousel-item-2&quot;&gt;Segundo item&lt;/li&gt;

&lt;/ul&gt;

&lt;/div&gt;

&lt;div disabled=&quot;disabled&quot; class=&quot;jcarousel-prev jcarousel-prev-disabled&quot;&gt;&lt;/div&gt;

&lt;div class=&quot;jcarousel-next&quot;&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;</pre>
<p>Como você pode ver, há alguns elementos adicionados, que atribuiu classes (além das classes que você já pode ter atribuídos manualmente). Sinta-se livre para projetar seu carrossel com as classes que você pode ver acima. Bom, como já tivemos uma introdução sobre o jCarousel, agora vamos implementar em nosso ASP.Net.</p>
<p>O jQuery jCarousel faz uso de HTML e tags UL e LI para criar a galeria de imagens do carrossel. Iremos usar o controle Repeater do ASP.Net para preencher as tags LI dinamicamente em UL com base nos valores do banco de dados.</p>
<pre class="brush: php; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;http://cdn.jsdelivr.net/jcarousel/0.2.8/jquery.jcarousel.min.js&quot;&gt;&lt;/script&gt;

&lt;link href=&quot;http://cdn.jsdelivr.net/jcarousel/0.2.8/skins/tango/skin.css&quot; rel=&quot;Stylesheet&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

$(function () {

$('#mycarousel').jcarousel();

});

&lt;/script&gt;

&lt;ul id=&quot;mycarousel&quot; class=&quot;jcarousel-skin-tango&quot;&gt;

&lt;asp:Repeater ID=&quot;rptImages&quot; runat=&quot;server&quot;&gt;

&lt;ItemTemplate&gt;

&lt;li&gt;

&lt;img alt=&quot;&quot; style='height: 75px; width: 75px' src='&lt;%# Eval(&quot;ImageUrl&quot;) %&gt;' /&gt;

&lt;/li&gt;

&lt;/ItemTemplate&gt;

&lt;/asp:Repeater&gt;

&lt;/ul&gt;</pre>
<p>&nbsp;</p>
<p>Vamos precisar usar os seguintes Namespaces, importer o seguinte:</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">using System.Data; </pre>
<p><strong> </strong></p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Imports System.Data</pre>
<p>Depois disso, vamos preencher o controle Repeater ASP.Net usando DataTable. No código abaixo iremos usar de DataTable com linhas fictícias para vincular a lista de imagens para o controle Repeater. Você pode preencher o DataTable do banco de dados também.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void Page_Load(object sender, EventArgs e)

{

DataTable dt = new DataTable();

dt.Columns.AddRange(new DataColumn[1] { new DataColumn(&quot;ImageUrl&quot;) });

dt.Rows.Add(&quot;http://static.flickr.com/66/199481236_dc98b5abb3_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/75/199481072_b4a0d09597_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/57/199481087_33ae73a8de_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/77/199481108_4359e6b971_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/58/199481143_3c148d9dd3_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/72/199481203_ad4cdcf109_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/58/199481218_264ce20da0_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/69/199481255_fdfe885f87_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/60/199480111_87d4cb3e38_s.jpg&quot;);

dt.Rows.Add(&quot;http://static.flickr.com/70/229228324_08223b70fa_s.jpg&quot;);

rptImages.DataSource = dt;

rptImages.DataBind();

}</pre>
<p><strong> </strong></p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

Dim dt As New DataTable()

dt.Columns.AddRange(New DataColumn(0) {New DataColumn(&quot;ImageUrl&quot;)})

dt.Rows.Add(&quot;http://static.flickr.com/66/199481236_dc98b5abb3_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/75/199481072_b4a0d09597_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/57/199481087_33ae73a8de_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/77/199481108_4359e6b971_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/58/199481143_3c148d9dd3_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/72/199481203_ad4cdcf109_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/58/199481218_264ce20da0_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/69/199481255_fdfe885f87_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/60/199480111_87d4cb3e38_s.jpg&quot;)

dt.Rows.Add(&quot;http://static.flickr.com/70/229228324_08223b70fa_s.jpg&quot;)

rptImages.DataSource = dt

rptImages.DataBind()

End Sub</pre>
<p>E o resultado no browser é dados abaixo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/Sem-título-1.fw_.png"><img class="aligncenter size-full wp-image-328786" src="http://www.mxstudio.com.br/wp-content/uploads/2013/04/Sem-título-1.fw_.png" alt="" width="551" height="302" /></a></p>
<p>E assim finalizamos nosso artigo. Para fazer o download dos arquivos usados neste artigo clique no link abaixo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/ASP.Net-e-jQuery-Galeria-de-Imagens-com-jCarousel.zip">Download</a></p>
<p>Até mais e boa programação</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-jquery-galeria-de-imagens-com-jcarousel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net e AJAX AutoSuggest TextBox</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-ajax-autosuggest-textbox/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-ajax-autosuggest-textbox/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 01:17:28 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[AJAX Control Tookit]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[AutoComplete]]></category>
		<category><![CDATA[UseContextKey]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=324079</guid>
		<description><![CDATA[Olá caros amigos desenvolvedores, hoje estaremos vendo como usar AJAX Control AutoCompleteExtender diretamente com ASP.Net Web Page sem o uso de qualquer serviço web. Você pode acessar mais artigos sobre controles AJAX em nosso site. Mas para quem não sabe o que é aqui vai uma explicação e suas propriedades. AutoComplete é um ASP.NET AJAX [...]]]></description>
			<content:encoded><![CDATA[<p>Olá caros amigos desenvolvedores, hoje estaremos vendo como usar AJAX Control AutoCompleteExtender diretamente com ASP.Net Web Page sem o uso de qualquer serviço web. Você pode acessar mais artigos sobre controles AJAX em nosso site. Mas para quem não sabe o que é aqui vai uma explicação e suas propriedades. AutoComplete é um ASP.NET AJAX extender que pode ser anexado a qualquer controle TextBox, e irá associar esse controle com um painel pop-up para exibir as palavras que começam com o prefixo digitado na caixa de texto.</p>
<p>O dropdown com as palavras fornecidas por um serviço web é posicionado na parte inferior esquerda da caixa de texto. Podemos associar um AutoCompleteExtender que “puxe” palavras que começam com o conteúdo da caixa de texto usando um serviço web.</p>
<p>Quando você digita mais conteúdo do que o comprimento mínimo especificado palavra, um pop-up irá mostrar palavras ou frases que começam com esse valor. Com o cache ligado, podemos escrever os mesmos prefixos,  e teremos vários resultados em vez de apenas uma chamada para o serviço web.</p>
<p><strong>As propriedades do </strong></p>
<p>A textbox está vinculada com um AutoCompleteExtender que é inicializado com este código. As propriedades itálico são opcionais:</p>
<pre class="brush: php; title: ; notranslate">&lt;ajaxToolkit:AutoCompleteExtender

runat=&quot;server&quot;

ID=&quot;autoComplete1&quot;

TargetControlID=&quot;myTextBox&quot;

ServiceMethod=&quot;GetCompletionList&quot;

&lt;em&gt;ServicePath&lt;/em&gt;=&quot;AutoComplete.asmx&quot;

&lt;em&gt;MinimumPrefixLength&lt;/em&gt;=&quot;2&quot;

&lt;em&gt;CompletionInterval&lt;/em&gt;=&quot;1000&quot;

&lt;em&gt;EnableCaching&lt;/em&gt;=&quot;true&quot;

&lt;em&gt;CompletionSetCount&lt;/em&gt;=&quot;20&quot;

&lt;em&gt;CompletionListCssClass&lt;/em&gt;=&quot;autocomplete_completionListElement&quot;

&lt;em&gt;CompletionListItemCssClass&lt;/em&gt;=&quot;autocomplete_listItem&quot;

&lt;em&gt;CompletionListHighlightedItemCssClass&lt;/em&gt;=&quot;autocomplete_highlightedListItem&quot;

&lt;em&gt;DelimiterCharacters&lt;/em&gt;=&quot;;, :&quot;

&lt;em&gt;ShowOnlyCurrentWordInCompletionListItem&lt;/em&gt;=&quot;true&quot;&gt;

&lt;em&gt;&lt;Animations&gt;&lt;/em&gt;

&lt;em&gt; &lt;OnShow&gt; ... &lt;/OnShow&gt;&lt;/em&gt;

&lt;em&gt; &lt;OnHide&gt; ... &lt;/OnHide&gt;&lt;/em&gt;

&lt;em&gt; &lt;/Animations&gt;&lt;/em&gt;

&lt;/ajaxToolkit:AutoCompleteExtender&gt;</pre>
<ul>
<li><strong>TargetControlID</strong> &#8211; O controle TextBox onde o usuário      os tipos de conteúdo a serem      preenchidos automaticamente</li>
<li><strong>ServiceMethod</strong> &#8211; O método de web service para ser chamado. A assinatura deste método deve coincidir com o seguinte:</li>
</ul>
<ul>
<li>[System.Web.Services.WebMethod]</li>
<li>[System.Web.Script.Services.ScriptMethod]</li>
</ul>
<p>public string[] GetCompletionList(string prefixText, int count) { &#8230; }</p>
<p>&nbsp;</p>
<p>Note que você pode substituir &#8220;GetCompletionList&#8221; com um nome de sua escolha, mas o tipo de retorno e o nome do parâmetro e o tipo deve corresponder exatamente, incluindo o caso.</p>
<ul>
<li><strong>ServicePath</strong> &#8211; O caminho para o web service que      o extender vai puxar a palavra\frase      completa. Se este não for      fornecido, o método de serviço deve ser um método de página.</li>
<li><strong>ContextKey</strong> &#8211; User/page contexto específico fornecido a uma sobrecarga (overload) opcional      do método descrito por ServiceMethod/ServicePath. Se a chave de contexto é usada, ela deve ter a mesma assinatura de um parâmetro adicional chamado contextKey do tipo string:</li>
</ul>
<ul>
<li>[System.Web.Services.WebMethod]</li>
<li>[System.Web.Script.Services.ScriptMethod]</li>
<li>public string[] GetCompletionList(</li>
</ul>
<p>string prefixText, int count, string contextKey) { &#8230; }</p>
<p>&nbsp;</p>
<p>Note que você pode substituir &#8220;GetCompletionList&#8221; com um nome de sua escolha, mas o tipo de retorno e o nome do parâmetro juntamente com o tipo deve corresponder exatamente, incluindo o caso.</p>
<ul>
<li><strong>UseContextKey</strong> &#8211; Se a propriedade ContextKey      deve ou não ser usada. Este será automaticamente ativado se a      propriedade ContextKey é      sempre definida (no cliente ou      no servidor). Se a chave de contexto é usada, ele deve ter a mesma assinatura com um parâmetro adicional chamado      contextKey do tipo string (como      descrito acima).</li>
<li><strong>MinimumPrefixLength</strong> &#8211; Número mínimo de caracteres que deve ser      inserido antes de chegar sugestões      do web service.</li>
<li><strong>CompletionInterval</strong> &#8211; Tempo em milissegundos quando o      temporizador vai chutar para      obter sugestões usando o web service.</li>
<li><strong>EnableCaching</strong> &#8211; Se o cache do lado do cliente é ativado.</li>
<li><strong>CompletionSetCount</strong> &#8211; Número de sugestões a ser recuperada a partir do web service.</li>
<li><strong>CompletionListCssClass</strong> &#8211; Classe CSS que será usada      para o estilo a lista de conclusão      flyout.</li>
<li><strong>CompletionListItemCssClass</strong> &#8211; Classe CSS que será usada para um item de estilo na lista      AutoCompletar flyout.</li>
<li><strong>CompletionListHighlightedItemCssClass</strong> &#8211; Classe CSS que será usada para o estilo de um item de destaque na lista AutoCompletar flyout.</li>
<li><strong>DelimiterCharacters</strong> &#8211; Especifica um ou mais caracteres      usado para separar as palavras. O      texto na AutoComplete textbox      é indexado com estes caracteres      e do webservice completa o      último token.</li>
<li><strong>FirstRowSelected</strong> &#8211; Determina se a primeira opção      na lista AutoComplete      será selecionada      por padrão.</li>
<li><strong>ShowOnlyCurrentWordInCompletionListItem</strong> &#8211; Se for true e DelimiterCharacters forem especificados,      os itens da lista de AutoComplete exibe      sugestões para a palavra atual      para ser concluída e não mostrar      o resto das fichas.</li>
<li><strong>Animations</strong> &#8211; Animações genéricas para o AutoComplete extender.
<ul>
<li><strong>OnShow</strong> &#8211; A animação OnShow será executada cada vez que a lista de conclusão AutoComplete é exibida. A lista de conclusão será posicionada corretamente, mas       oculta. A animação pode usar &lt;HideAction       Visible=&#8221;true&#8221; /&gt; para exibir a lista de conclusão,       juntamente com quaisquer outros efeitos visuais.</li>
<li><strong>OnHide</strong> &#8211; A animação OnHide será executada cada vez que a lista de conclusão AutoComplete está oculta.</li>
</ul>
</li>
</ul>
<p>Então vamos para nosso banco de dados, neste artigo iremos usar o nosso famoso e conhecido banco de dados Northwind. Se você não o possuir, faça o download usando o link fornecido abaixo.</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034" target="_blank">Download Northwind Database</a></p>
<p><strong> </strong></p>
<p>Nossa Connection String, uma vez que banco de dados é baixado, você pode anexar o mesmo a instância do SQL Server. Eu estou fazendo uso do SQL Server 2012 Express, portanto, abaixo é a minha seqüência de conexão.</p>
<pre class="brush: php; title: ; notranslate">&lt;connectionStrings&gt;

&lt;addname=&quot;constr&quot;connectionString=&quot;Data Source = .\SQLExpress;

Initial Catalog = Northwind; Integrated Security = true&quot;/&gt;

&lt;/connectionStrings&gt;</pre>
<p>&nbsp;</p>
<p><strong>AJAX Control Toolkit</strong></p>
<p>Baixe o AJAX Control Toolkit DLL usando o link abaixo e adicione a referência ao seu projeto.</p>
<p><a href="http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx" target="_blank">Download AJAX Control Tookit</a></p>
<p>E para registrá-lo na página ASPX, faça como dado abaixo:</p>
<pre class="brush: php; title: ; notranslate">&lt;%@ Register Assembly=&quot;AjaxControlToolkit&quot; Namespace=&quot;AjaxControlToolkit&quot; TagPrefix=&quot;cc1&quot; %&gt;</pre>
<p><strong> </strong></p>
<p>Nosso HTML, ficará como abaixo na página Web ASP.Net</p>
<pre class="brush: php; title: ; notranslate">&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot;

EnablePageMethods = &quot;true&quot;&gt;

&lt;/asp:ScriptManager&gt;

&amp;nbsp;

&lt;asp:TextBox ID=&quot;txtContactsSearch&quot; runat=&quot;server&quot;&gt;&lt;/asp:TextBox&gt;

&lt;cc1:AutoCompleteExtender ServiceMethod=&quot;SearchCustomers&quot;

MinimumPrefixLength=&quot;2&quot;

CompletionInterval=&quot;100&quot; EnableCaching=&quot;false&quot; CompletionSetCount=&quot;10&quot;

TargetControlID=&quot;txtContactsSearch&quot;

ID=&quot;AutoCompleteExtender1&quot; runat=&quot;server&quot; FirstRowSelected = &quot;false&quot;&gt;

&lt;/cc1:AutoCompleteExtender&gt;</pre>
<p>&nbsp;</p>
<p>Como você pode notar acima, colocamos um ScriptManager, um TextBox que atuará como AutoComplete e o AJAX Control Toolkit AutoCompleteExtender. Também estamos chamando um método SearchCustomers usando a propriedade ServiceMethod.</p>
<p><strong>Métodos Server Side </strong></p>
<p>O método a seguir é usado para preencher a lista completa de clientes Auto</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">[System.Web.Script.Services.ScriptMethod()]

[System.Web.Services.WebMethod]

public static List&lt;string&gt; SearchCustomers(string prefixText, int count)

{

using (SqlConnection conn = new SqlConnection())

{

conn.ConnectionString = ConfigurationManager

.ConnectionStrings[&quot;constr&quot;].ConnectionString;

using (SqlCommand cmd = new SqlCommand())

{

cmd.CommandText = &quot;select ContactName from Customers where &quot; +

&quot;ContactName like @SearchText + '%'&quot;;

cmd.Parameters.AddWithValue(&quot;@SearchText&quot;, prefixText);

cmd.Connection = conn;

conn.Open();

List&lt;string&gt; customers = new List&lt;string&gt;();

using (SqlDataReader sdr = cmd.ExecuteReader())

{

while (sdr.Read())

{

customers.Add(sdr[&quot;ContactName&quot;].ToString());

}

}

conn.Close();

return customers;

}

}

}</pre>
<p>&nbsp;</p>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">&lt;System.Web.Script.Services.ScriptMethod(), _

System.Web.Services.WebMethod()&gt; _

Public Shared Function SearchCustomers(ByVal prefixText As String, ByVal count As Integer) As List(Of String)

Dim conn As SqlConnection = New SqlConnection

conn.ConnectionString = ConfigurationManager _

.ConnectionStrings(&quot;constr&quot;).ConnectionString

Dim cmd As SqlCommand = New SqlCommand

cmd.CommandText = &quot;select ContactName from Customers where&quot; &amp; _

&quot; ContactName like @SearchText + '%'&quot;

cmd.Parameters.AddWithValue(&quot;@SearchText&quot;, prefixText)

cmd.Connection = conn

conn.Open()

Dim customers As List(Of String) = New List(Of String)

Dim sdr As SqlDataReader = cmd.ExecuteReader

While sdr.Read

customers.Add(sdr(&quot;ContactName&quot;).ToString)

End While

conn.Close()

Return customers

End Function</pre>
<p>&nbsp;</p>
<p>O método acima simplesmente procura na tabela de clientes e retorna a lista de nomes de clientes que correspondam ao texto prefixo. É muito importante manter a assinatura do mesmo método dado acima. O método deve ter dois parâmetros nomeadamente:</p>
<p>1. prefixText (string)<br />
2. count (int)</p>
<p>Caso contrário, o método não funciona com AutoCompleteExtender.</p>
<p><strong><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/img1.fw_.png"><img src="http://www.mxstudio.com.br/wp-content/uploads/2013/04/img1.fw_.png" alt="" width="638" height="448" /></a></strong></p>
<p>&nbsp;</p>
<p>E assim, finalizamos mais um artigo. Você pode baixar o código fonte em C # e VB.Net usando o link abaixo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/04/ASP.Net-e-AJAX-AutoSuggest-TextBox.zip">Download</a></p>
<p>Até mais e boa programação.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-ajax-autosuggest-textbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net e JavaScript – Master Pages</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-javascript-%e2%80%93-master-pages/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-javascript-%e2%80%93-master-pages/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 23:58:37 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[ContentPlaceHolder]]></category>
		<category><![CDATA[JavaScript GetValue()]]></category>
		<category><![CDATA[Master Pages]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=300884</guid>
		<description><![CDATA[Bem vindos a mais um artigo, onde estaremos fazendo uma integração de JavaScript com Master Pages em ASP.NET. Muitos enfrentam problemas em como usar JavaScript com Master Pages em ASP.NET. Esta necessidade é a origem de nosso artigo, ao trabalhar com Master Pages há apenas uma Master Pages e várias páginas de conteúdo, portanto, escrever [...]]]></description>
			<content:encoded><![CDATA[<p>Bem vindos a mais um artigo, onde estaremos fazendo uma integração de  JavaScript com Master Pages em ASP.NET. Muitos enfrentam problemas em  como usar JavaScript com Master Pages em ASP.NET. Esta necessidade é a  origem de nosso artigo, ao trabalhar com Master Pages há apenas uma  Master Pages e várias páginas de conteúdo, portanto, escrever função  JavaScript se torna um problema.<strong> </strong></p>
<p>Colocar o  JavaScript em páginas de conteúdo. Ao trabalhar com Master Pages temos  que colocar o JavaScript dentro de tags de script em páginas de conteúdo  entre o espaço reservado para conteúdo.</p>
<pre class="brush: php; title: ; notranslate">
&lt;input id=&quot;Button1&quot; onclick=&quot;GetValue()&quot; type=&quot;button&quot; value=&quot;button&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

function Function-1()

{

// Função 1-vai aqui

}

function Function-2()

{

// Função 2-vai aqui

}

// ]]&gt;&lt;/script&gt;
</pre>
<p>Como você vai notar acima eu coloquei uma função JavaScript em uma página de conteúdo dentro do ContentPlaceHolder.  Você pode colocar o script em qualquer lugar dentro do  ContentPlaceHolder da página de conteúdo, mas é melhor colocá-lo na  parte inferior.</p>
<p>Problema com os IDs dos controles, você pode  considerar o exemplo abaixo, onde foi usado uma caixa de texto, uma  label e um botão HTML e no evento onclick do botão HTML estamos chamando  a função JavaScript GetValue()</p>
<pre class="brush: php; title: ; notranslate">

&lt;input id=&quot;Button1&quot; onclick=&quot;GetValue()&quot; type=&quot;button&quot; value=&quot;button&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

function GetValue()

{

var label = document.getElementById(&quot;Label1&quot;);

var textbox = document.getElementById(&quot;TextBox1&quot;);

alert(&quot;Valor da Label é &quot; + label.innerHTML);

alert(&quot;Valor da TextBox é &quot; + textbox.value);

}

// ]]&gt;&lt;/script&gt;
</pre>
<p>Mas quando executar a aplicação e clicar no botão iremos receber o erro em JavaScript solicitando um objeto requerido.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_1.png"><img class="aligncenter size-full wp-image-300908" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_1.png" alt="" width="604" height="421" /></a></p>
<p>Agora  o motivo para o erro JavaScript acima é o ID dos controles Label1 e  TextBox1. A função JavaScript não é capaz de encontrar todos os  controles com ID Label1 e TextBox1 Para mais detalhes consulte a figura  abaixo, que exibe o código HTML da página.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_2.png"><img class="aligncenter size-full wp-image-300907" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_2.png" alt="" width="604" height="421" /></a></p>
<p>Perceba  que o ID do TextBox1 mudou para ctl00_ContentPlaceHolder1_TextBox1 e da  Label1 mudou para ctl00_ContentPlaceHolder1_Label1, portanto, a função  JavaScript não é capaz de encontrá-los. Mas você vai perceber que o ID  do Button1 tem n mudanças, a razão é  o runat = &#8220;server&#8221; que não está  presente no botão. Quando MasterPages são usadas tendem a mudar o nome  de todos os controles nas páginas de conteúdo que têm runat=”server”.</p>
<p>A  solução para o problema acima é tendo a ajuda das tags ASP.Net inline e  as propriedades ClientID e UniqueID de um controle ASP.Net. A definição  dos dois termos é dada abaixo:</p>
<p><strong>ClientID</strong> – ASP.NET gera automaticamente um ClientID para um servidor quando o controle é processado como HTML ID do controle.</p>
<p><strong>UniqueID</strong> – O identificador hierarquicamente qualificado exclusivo atribuído a um  controle por parte do ASP.NET processado como nome de código HTML do  controle.</p>
<pre class="brush: php; title: ; notranslate">

&lt;input id=&quot;Button1&quot; onclick=&quot;GetValue()&quot; type=&quot;button&quot; value=&quot;button&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

function GetValue()

{

var label = document.getElementById(&quot;&lt;%=Label1.ClientID%&gt;&quot;);

var textbox = document.getElementById(&quot;&lt;%=TextBox1.ClientID%&gt;&quot;);

alert(&quot;Valor da Label é &quot; + label.innerHTML);

alert(&quot;Valor da TextBox é &quot; + textbox.value);

}

// ]]&gt;&lt;/script&gt;
</pre>
<p>Estamos  usando ASP.Net Inline Server Tags, que simplesmente imprime o ClientID  do controle Label1, assim, não há necessidade de se preocupar com os IDs  de mudança. Esta é a melhor prática para este método, abrangendo para  todos os controles com tag runat = &#8220;server&#8221;.</p>
<p>Para quem não esta  acostumado com Embedded Code Blocks ( ), vou explicar, esses blocos de  código incorporados nos permite escrever o código ASP.Net dentro do aspx  usando as tags do servidor <strong>. </strong></p>
<p>Vejamos alguns exemplos:</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;

MX Dev

&lt;/div&gt;
&lt;/form&gt;
</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;

MX Dev

&lt;/div&gt;
&lt;/form&gt;
</pre>
<p>Como  você pode ver acima, no código acima eu usei Server Tags para executar  um loop que imprime Baboo Dev 3 vezes, juntamente com o contador. Você  pode consultar o resultado na imagem abaixo.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_3.png"><img class="aligncenter size-full wp-image-300937" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_3.png" alt="" width="600" height="421" /></a></p>
<p>Vocês notaram a diferença do C# code para o VB, é que em C# o loop FOR inicia-se com 0.</p>
<p>Também  você pode usar server tags embutidas para imprimir variáveis e também  chamar funções que retornam valor quando igual a operador que é usado.  Em geral, é um atalho para declaração Response.Write. Como também  podemos imprimir variável.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

string meuNome = &quot;X@nBuRzUm&quot;;

// ]]&gt;&lt;/script&gt;
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
Meu nome é .&lt;/div&gt;
&lt;/form&gt;
</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

Dim meuNome As String = &quot;X@nBuRzUm&quot;

// ]]&gt;&lt;/script&gt;
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
Meu nome é .&lt;/div&gt;
&lt;/form&gt;
</pre>
<p>E para chamar funções.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

protected string GetTime()

{

return DateTime.Now.ToShortTimeString();

}

// ]]&gt;&lt;/script&gt;
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
Hora Atual .&lt;/div&gt;
&lt;/form&gt;
</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

Protected Function GetTime() As String

Return DateTime.Now.ToShortTimeString()

End Function

// ]]&gt;&lt;/script&gt;
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
 Hora Atual .&lt;/div&gt;
&lt;/form&gt;
</pre>
<p>No  código acima estamos simplesmente chamando a função GetTime() usando as  tags do servidor. E abaixo a imagem resultante no browser.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_4.png"><img class="aligncenter size-full wp-image-300905" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_4.png" alt="" width="408" height="295" /></a></p>
<p><strong>Expressões Data-Binding ( )</strong></p>
<p>As  Server Tags com um hash são usados para ligar dados com várias linhas  ou itens para um controle de fonte de dados como Repeater, GridView,  FormView, DataGrid, etc.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

protected void Page_Load(object sender, EventArgs e)

{

DataTable dt = new DataTable();

dt.Columns.Add(&quot;Nomes&quot;, Type.GetType(&quot;System.String&quot;));

dt.Rows.Add();

dt.Rows[0][&quot;Nomes&quot;] = &quot;Xanburzum&quot;;

dt.Rows.Add();

dt.Rows[1][&quot;Nomes&quot;] = &quot;Alexandre&quot;;

dt.Rows.Add();

dt.Rows[2][&quot;Nomes&quot;] = &quot;Roberto&quot;;

dt.AcceptChanges();

Repeater1.DataSource = dt;

Repeater1.DataBind();

}

// ]]&gt;&lt;/script&gt;

&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
Lista de Nomes

&lt;ItemTemplate &gt;

&lt;/div&gt;
&lt;/form&gt;
</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)

Dim dt As New DataTable()

dt.Columns.Add(&quot;Nomes&quot;, Type.[GetType](&quot;System.String&quot;))

dt.Rows.Add()

dt.Rows(0)(&quot;Nomes&quot;) = &quot;Xanburzum&quot;

dt.Rows.Add()

dt.Rows(1)(&quot;Nomes&quot;) = &quot;Alexandre&quot;

dt.Rows.Add()

dt.Rows(2)(&quot;Nomes&quot;) = &quot;Roberto&quot;

dt.AcceptChanges()

Repeater1.DataSource = dt

Repeater1.DataBind()

End Sub

// ]]&gt;&lt;/script&gt;

&lt;/pre&gt;
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
Lista de Nomes

&lt;ItemTemplate &gt;

&lt;/div&gt;
&lt;/form&gt;
</pre>
<p>Aqui  primeiro criamos um novo objeto DataTable depois acrescentamos uma  coluna chamada Nomes para ele, em seguida adicionamos três linhas, a fim  de adicionar nomes de três pessoas para o DataTable. Então atribuímos a  tabela de dados para um controle Repeater que finalmente exibe o mesmo.</p>
<p>Você  vai notar que tenho usado declaração Eval para vincular os dados. Você  também pode usar Bind, a diferença Eval para Bind pode ser usado para  obter, bem como atualização de dados, portanto, geralmente Bind é usada  com controles Textbox. Abaixo a imagem do browser.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_5.png"><img class="aligncenter size-full wp-image-300910" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_5.png" alt="" width="522" height="392" /></a></p>
<p><strong>Expressões ASP.Net ( )</strong></p>
<p>O prefixo $ expression para AppSettings, ConnectionStrings ou recursos. O formato da expressão é a seguinte</p>
<p>O tipo pode ser AppSettings, ConnectionStrings, ou Recursos com base no que você deseja atribuir.</p>
<pre class="brush: php; title: ; notranslate">
SelectCommand=&quot;SELECT * FROM [Customers]&quot;

ConnectionString=&quot;&quot;&gt;
</pre>
<p>Acima atribuímos o valor da connection string à fonte de dados usando o ASP.Net Expressions</p>
<p><strong>Comentários Server Side ( )</strong></p>
<p>As tags são usadas para especificar os comentários do lado do servidor na página aspx.</p>
<p>A sintaxe é:</p>
<pre class="brush: php; title: ; notranslate">&lt;%-- Aqui via o comentário --%&gt;</pre>
<p>Abaixo foi feito um comentário em um controle TextBox na página aspx, desta maneira o  controle não é processado.</p>
<pre class="brush: php; title: ; notranslate">
&lt;form id=&quot;form1&quot;&gt;
&lt;div&gt;
&lt;%--

--%&gt;&lt;/div&gt;
&lt;/form&gt;
&lt;pre&gt;
</pre>
<p>Bom, então já tivemos uma boa explicação sobre ASP.Net Server Tags Inline.</p>
<p>Agora,  após as alterações feitas a função JavaScript será capaz de encontrar  os controles e, portanto, ela funciona corretamente conforme necessário.  A razão pela qual ela começou a trabalhar também pode ser visto no  código HTML da página, como mostrado na figura abaixo.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_6.png"><img class="aligncenter size-full wp-image-300904" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_6.png" alt="" width="600" height="423" /></a></p>
<p>As  marcações em amarelo mostra que o ID do TextBox e da Label é o mesmo  que é gerado pela MasterPage, portanto, a função JavaScript começou a  trabalhar. O método acima não funciona com arquivos JavaScript Source  (JS), pois não conseguem interpretar as tags, elas não são permitidas. E  aqui o resultado final:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_7.png"><img class="aligncenter size-full wp-image-300909" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/asp.net_jsmaster_7.png" alt="" width="535" height="404" /></a></p>
<p>Você pode baixar o código fonte de exemplo para este artigo através do link abaixo.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/MasterPage.zip">Download</a></p>
<p>Até mais e boa programação.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-e-javascript-%e2%80%93-master-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net AJAX &#8211; Preenchendo com dados o Controle Line Chart</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-ajax-preenchendo-com-dados-o-controle-line-chart/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-ajax-preenchendo-com-dados-o-controle-line-chart/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 14:15:32 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[ASP.Net AJAX Control Toolkit Animated Line Chart]]></category>
		<category><![CDATA[LineChart]]></category>
		<category><![CDATA[NorthWind Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[ToolkitScriptManager]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=295599</guid>
		<description><![CDATA[Neste artigo vou explicar com um exemplo de como preencher dinamicamente o controle ASP.Net AJAX Control Toolkit Animated Line Chart com o banco de dados SQL Server. Para esse nosso artigo iremos precisar de um banco de dados, e sempre estamos adotando o  Northwind Database do SQL Server. Caso você não o possua, clique no [...]]]></description>
			<content:encoded><![CDATA[<p>Neste artigo vou explicar com um exemplo de como preencher dinamicamente o controle ASP.Net AJAX Control Toolkit Animated Line Chart com o banco de dados SQL Server.</p>
<p>Para esse nosso artigo iremos precisar de um banco de dados, e sempre estamos adotando o  Northwind Database do SQL Server. Caso você não o possua, clique no link abaixo para fazer o download.</p>
<p><a href="http://aspsnippets.com/Articles/Install-Microsoft-Northwind-and-Pubs-Sample-databases-in-SQL-Server-Management-Studio.aspx">Download e instalação Northwind Database</a></p>
<p>Para usar o controle ASP.Net AJAX Line Chart, arraste um ASP.Net AJAX ToolScriptManager na página, em seguida registre o AJAX Control Toolkit Library após a adição de referência ao seu projeto.</p>
<pre class="brush: php; title: ; notranslate">&lt;%@ Register Assembly=&quot;AjaxControlToolkit&quot; Namespace=&quot;AjaxControlToolkit&quot; TagPrefix=&quot;cc1&quot; %&gt;</pre>
<p>Nosso código HTML é simples, ele contém de um DropDownList ASP.Net e um controle ASP.Net AJAX Control Toolkit Line Chart.</p>
<pre class="brush: php; title: ; notranslate">&lt;cc1:ToolkitScriptManager ID=&quot;ToolkitScriptManager1&quot; runat=&quot;server&quot;&gt;

&lt;/cc1:ToolkitScriptManager&gt;

&lt;asp:DropDownList ID=&quot;ddlCountries&quot; runat=&quot;server&quot; OnSelectedIndexChanged=&quot;ddlCountries_SelectedIndexChanged&quot;

AutoPostBack=&quot;true&quot;&gt;

&lt;/asp:DropDownList&gt;

&lt;hr /&gt;

&lt;cc1:LineChart ID=&quot;LineChart1&quot; runat=&quot;server&quot; ChartHeight=&quot;300&quot; ChartWidth = &quot;450&quot;

ChartType=&quot;Basic&quot; ChartTitleColor=&quot;#0E426C&quot; Visible = &quot;false&quot;

CategoryAxisLineColor=&quot;#D08AD9&quot; ValueAxisLineColor=&quot;#D08AD9&quot; BaseLineColor=&quot;#A156AB&quot;&gt;

&lt;/cc1:LineChart&gt;</pre>
<p>Com base na seleção do DropDownList, o gráfico de linha será preenchido a partir de banco de dados dinamicamente.</p>
<p>Vamos também precisar utilizar os seguintes Namespaces.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">using System.Data;

using System.Data.SqlClient;

using System.Configuration; </pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Imports System.Data

Imports System.Data.SqlClient

Imports System.Configuration</pre>
<p>E vamos popular (preencher) nosso DropDownList e o ASP.Net AJAX Control Toolkit Line Chart, para isso no evento Load da página ASP.Net vamos preencher o DropDownList com lista de países de banco de dados Northwind, onde os pedidos (Orders ) foram enviados. Após, no evento SelectedIndexChanged do DropDownList preenchemos com informação estatística ou seja em que cidade do país selecionado, as ordens foram distribuídas. Esta informação estatística é apresentada como Gráfico de Linhas onde o eixo são as cidades dos países da cidade selecionada e a série a quantidade total de pedidos enviados em cada cidade.</p>
<p><strong>C#</strong></p>
<pre class="brush: php; title: ; notranslate">protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

string query = &quot;select distinct shipcountry from orders&quot;;

DataTable dt = GetData(query);

ddlCountries.DataSource = dt;

ddlCountries.DataTextField = &quot;shipcountry&quot;;

ddlCountries.DataValueField = &quot;shipcountry&quot;;

ddlCountries.DataBind();

ddlCountries.Items.Insert(0, new ListItem(&quot;Select&quot;, &quot;&quot;));

}

}

protected void ddlCountries_SelectedIndexChanged(object sender, EventArgs e)

{

string query = string.Format(&quot;select shipcity, count(orderid) from orders where shipcountry = '{0}' group by shipcity&quot;, ddlCountries.SelectedItem.Value);

DataTable dt = GetData(query);

string[] x = new string[dt.Rows.Count];

decimal[] y = new decimal[dt.Rows.Count];

for (int i = 0; i &lt; dt.Rows.Count; i++)

{

x[i] = dt.Rows[i][0].ToString();

y[i] = Convert.ToInt32(dt.Rows[i][1]);

}

LineChart1.Series.Add(new AjaxControlToolkit.LineChartSeries { Data = y });

LineChart1.CategoriesAxis = string.Join(&quot;,&quot;, x);

LineChart1.ChartTitle = string.Format(&quot;{0} Order Distribution&quot;, ddlCountries.SelectedItem.Value);

if (x.Length &gt; 3)

{

LineChart1.ChartWidth = (x.Length * 75).ToString();

}

LineChart1.Visible = true;

}

private static DataTable GetData(string query)

{

DataTable dt = new DataTable();

string constr = ConfigurationManager.ConnectionStrings[&quot;constr&quot;].ConnectionString;

using (SqlConnection con = new SqlConnection(constr))

{

using (SqlCommand cmd = new SqlCommand(query))

{

using (SqlDataAdapter sda = new SqlDataAdapter())

{

cmd.CommandType = CommandType.Text;

cmd.Connection = con;

sda.SelectCommand = cmd;

sda.Fill(dt);

}

}

return dt;

}

}</pre>
<p><strong>VB.Net</strong></p>
<pre class="brush: php; title: ; notranslate">Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

If Not IsPostBack Then

Dim query As String = &quot;select distinct shipcountry from orders&quot;

Dim dt As DataTable = GetData(query)

ddlCountries.DataSource = dt

ddlCountries.DataTextField = &quot;shipcountry&quot;

ddlCountries.DataValueField = &quot;shipcountry&quot;

ddlCountries.DataBind()

ddlCountries.Items.Insert(0, New ListItem(&quot;Select&quot;, &quot;&quot;))

End If

End Sub

Protected Sub ddlCountries_SelectedIndexChanged(sender As Object, e As EventArgs)

Dim query As String = String.Format(&quot;select shipcity, count(orderid) from orders where shipcountry = '{0}' group by shipcity&quot;, ddlCountries.SelectedItem.Value)

Dim dt As DataTable = GetData(query)

Dim x As String() = New String(dt.Rows.Count - 1) {}

Dim y As Decimal() = New Decimal(dt.Rows.Count - 1) {}

For i As Integer = 0 To dt.Rows.Count - 1

x(i) = dt.Rows(i)(0).ToString()

y(i) = Convert.ToInt32(dt.Rows(i)(1))

Next

LineChart1.Series.Add(New AjaxControlToolkit.LineChartSeries() With { _

.Data = y _

})

LineChart1.CategoriesAxis = String.Join(&quot;,&quot;, x)

LineChart1.ChartTitle = String.Format(&quot;{0} Order Distribution&quot;, ddlCountries.SelectedItem.Value)

If x.Length &gt; 3 Then

LineChart1.ChartWidth = (x.Length * 75).ToString()

End If

LineChart1.Visible = True

End Sub

Private Shared Function GetData(query As String) As DataTable

Dim dt As New DataTable()

Dim constr As String = ConfigurationManager.ConnectionStrings(&quot;constr&quot;).ConnectionString

Using con As New SqlConnection(constr)

Using cmd As New SqlCommand(query)

Using sda As New SqlDataAdapter()

cmd.CommandType = CommandType.Text

cmd.Connection = con

sda.SelectCommand = cmd

sda.Fill(dt)

End Using

End Using

Return dt

End Using

End Function</pre>
<p>E aqui a imagem resultante no browser.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/Sem-título-35.fw_.png"><img class="aligncenter size-full wp-image-295624" src="http://www.mxstudio.com.br/wp-content/uploads/2013/03/Sem-título-35.fw_.png" alt="" width="889" height="577" /></a></p>
<p>Você pode fazer o download dos códigos usados neste artigo clicando no link abaixo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/03/ASP.Net-AJAX-Preenchendo-com-dados-o-Controle-Line-Chart.zip">Download</a></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-ajax-preenchendo-com-dados-o-controle-line-chart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; Contagem de Caracteres e a Validação do Comprimento máximo de caracteres</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-contagem-de-caracteres-e-a-validacao-do-comprimento-maximo-de-caracteres/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-contagem-de-caracteres-e-a-validacao-do-comprimento-maximo-de-caracteres/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 23:44:26 +0000</pubDate>
		<dc:creator>X@nBuRzUm</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[Web Marketing]]></category>
		<category><![CDATA[ASP.net.]]></category>
		<category><![CDATA[Contagem de Caracteres]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Validação do Comprimento máximo de caracteres]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=292829</guid>
		<description><![CDATA[Neste artigo vou explicar como implementar Contagem de Caracteres e a Validação do Comprimento máximo de caracteres para os TextBox e o controle HTML TextArea. O controle HTML TextArea não tem a propriedade MaxLength como o TextBox normal e campos do tipo Password possuem, mas podemos usar o plugin jQuery MaxLength que simula o funcionamento [...]]]></description>
			<content:encoded><![CDATA[<p>Neste artigo vou explicar como implementar Contagem de Caracteres e a  Validação do Comprimento máximo de caracteres para os TextBox e o  controle HTML TextArea. O controle HTML TextArea não tem a propriedade  MaxLength como o TextBox normal e campos do tipo Password possuem, mas podemos usar o plugin jQuery MaxLength que simula o funcionamento do MaxLength  normal com a ajuda de JavaScript e jQuery.</p>
<p>Então vamos a  implementação do Plugin jQuery MaxLength para ASP.Net TextBox  (TextArea), abaixo, você vai notar a implementação do plugin MaxLength  jQuery. O plugin MaxLength jQuery tem os seguintes parâmetros  obrigatórios e opcionais:</p>
<p>1. MaxLength (obrigatório) &#8211; valor inteiro indicando o limite de comprimento máximo de caracteres.<br />
2.  CharacterCountControl (opcional) &#8211; Por padrão, o plugin irá exibir a  contagem de caráter abaixo do TextArea, mas o usuário tem a opção de  especificar explicitamente o controle de contagem dos caracteres.<br />
Lembrando que o controle de contagem de caracteres só pode ser usado com a tag HTML  SPAN ou DIV.</p>
<p>3.  DisplayCharacterCount (opcional) &#8211; Padrão True. Se escolhida para false  a contagem de caracteres será desativada.</p>
<pre class="brush: plain; title: ; notranslate">
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head runat=&quot;server&quot;&gt;
 &lt;title&gt;title&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js&quot;&gt;script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;MaxLength.min.js&quot;&gt;script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 $(function () {
 //Normal Configuration
 $(&quot;[id*=TextBox1]&quot;).MaxLength({ MaxLength: 10 });

 //Specifying the Character Count control explicitly
 $(&quot;[id*=TextBox2]&quot;).MaxLength(
 {
 MaxLength: 15,
 CharacterCountControl: $('#counter')
 });

 //Disable Character Count
 $(&quot;[id*=TextBox3]&quot;).MaxLength(
 {
 MaxLength: 20,
 DisplayCharacterCount: false
 });
 });
 script&gt;
 head&gt;
 &lt;body&gt;
 &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;
 &lt;div id=&quot;counter&quot;&gt;
 div&gt;
 &lt;asp:TextBox ID=&quot;TextBox1&quot; runat=&quot;server&quot; TextMode=&quot;MultiLine&quot; Width=&quot;300&quot; Height=&quot;100&quot;
 Text=&quot;Mudassar Khan&quot;&gt;asp:TextBox&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;asp:TextBox ID=&quot;TextBox2&quot; runat=&quot;server&quot; TextMode=&quot;MultiLine&quot; Width=&quot;300&quot; Height=&quot;100&quot;&gt;asp:TextBox&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;asp:TextBox ID=&quot;TextBox3&quot; runat=&quot;server&quot; TextMode=&quot;MultiLine&quot; Width=&quot;300&quot; Height=&quot;100&quot;&gt;asp:TextBox&gt;
 form&gt;
 body&gt;
 html&gt;</pre>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2013/02/contagem.fw_.png"><img class="aligncenter size-full wp-image-292840" src="http://www.mxstudio.com.br/wp-content/uploads/2013/02/contagem.fw_.png" alt="" width="535" height="616" /></a></p>
<p>Faça o download dos arquivos <a href="http://www.mxstudio.com.br/wp-content/uploads/2013/02/ASP.Net-Contagem-de-Caracteres-e-a-Validação-do-Comprimento-máximo.zip">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/asp-net-contagem-de-caracteres-e-a-validacao-do-comprimento-maximo-de-caracteres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
