Dicas JavaScript e Servidor - Asp.NET

Veja neste artigo algumas dicas em Asp.net.

Veja neste artigo uma sequência de dicas para ASP.NET falaremos sobre dicas de JavaScript e por último dicas de Servidor. Vamos iniciar então com o JavaScript.

Javascript

function getInputs(obj, array) { if (obj.childNodes != null) { for (var i = 0; i < obj.childNodes.length; i++) { var element = obj.childNodes[i]; if (element.nodeName.toUpperCase() == 'INPUT' && element.type.toUpperCase() == 'TEXT') { array[array.length] = element; } else { getInputs(element, array); } } } }
Listagem 1. Buscando Textboxs
function trim(str) { return str.replace(/^\s+|\s+$/g, ""); }
Listagem 2. Removendo os espaços em branco
function limpar() { var array = []; var msg = ''; getInputs(document, array); for (var i = 0; i < array.length; i++) { array[i].value = ''; } array = null; }
Listagem 3. Limpando os TextBoxs da página
function validar() { var array = []; var msg = ''; getInputs(document, array); for (var i = 0; i < array.length; i++) { if (trim(array[i].value) == '') { msg += 'Campo ' + array[i].attributes['description'].value + ' em branco!\n'; } } array = null; if (msg != '') { alert(msg) return false; } }
Listagem 4. Validando os TextBoxs da página

Servidor

public void Limpar(Control controlP) { foreach (Control ctl in controlP.Controls) { if (ctl is TextBox) { ((TextBox)ctl).Text = String.Empty; } else if (ctl.Controls.Count > 0) { Limpar(ctl); } } }
Listagem 5. Limpando os Textboxs do lado do servidor
public void Validar(Control controlP, StringBuilder oStringBuilder) { foreach (Control ctl in controlP.Controls) { if (ctl is TextBox) { TextBox oTextBox = (TextBox)ctl; if (oTextBox.Text.Trim() == String.Empty) { oStringBuilder.Append("Campo " + oTextBox.Attributes["description"] + " em branco!\\n"); } } else if (ctl.Controls.Count > 0) { Validar(ctl, oStringBuilder); } } }
Listagem 6. Validando os Textboxs do lado do servidor
ScriptManager.RegisterStartupScript(this, typeof(Page), "Mensagem", "alert('Hello World');", true);
Listagem 7. Adicionando um script na página

Abaixo um exemplo onde podemos limpar e validar os textbox sem conhecer os ids dos componentes, utilizamos recursividade para encontrar os componentes, tanto do lado do servidor como do lado do cliente.

Nos componentes Textbox adicionei um novo atributo para colocar a descrição, utilizado para mostrar para o cliente qual campo está em branco.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DicasAspNet.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <script language="javascript" type="text/javascript"> function limpar() { var array = []; var msg = ''; getInputs(document, array); for (var i = 0; i < array.length; i++) { array[i].value = ''; } array = null; } function validar() { var array = []; var msg = ''; getInputs(document, array); for (var i = 0; i < array.length; i++) { if (trim(array[i].value) == '') { msg += 'Campo ' + array[i].attributes['description'].value + ' em branco!\n'; } } array = null; if (msg != '') { alert(msg) return false; } } function getInputs(obj, array) { if (obj.childNodes != null) { for (var i = 0; i < obj.childNodes.length; i++) { var element = obj.childNodes[i]; if (element.nodeName.toUpperCase() == 'INPUT' && element.type.toUpperCase() == 'TEXT') { array[array.length] = element; } else { getInputs(element, array); } } } } function trim(str) { return str.replace(/^\s+|\s+$/g, ""); } </script> <table width="200px" border="0"> <tr> <td > <asp:Label runat="server" Text="Nome: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox1" runat="server" description="Nome"> </asp:TextBox> </td> </tr> <tr> <td > <asp:Label ID="Label1" runat="server" Text="Idade: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox2" runat="server" description="Idade"> </asp:TextBox> </td> </tr> <tr> <td > <asp:Label ID="Label2" runat="server" Text="Rua: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox3" runat="server" description="Rua"> </asp:TextBox> </td> </tr> <tr> <td > <asp:Label ID="Label3" runat="server" Text="Bairro: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox4" runat="server" description="Bairro"> </asp:TextBox> </td> </tr> <tr> <td > <asp:Label ID="Label4" runat="server" Text="Cidade: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox5" runat="server" description="Cidade"> </asp:TextBox> </td> </tr> <tr> <td > <asp:Label ID="Label5" runat="server" Text="UF: "></asp:Label> </td> <td > <asp:TextBox ID="TextBox6" runat="server" description="UF"> </asp:TextBox><br /> </td> </tr> </table> <input id="Button4" type="button" value="Limpar Javascript" onclick="limpar();" /> <asp:Button ID="Button1" runat="server" Text="Limpar Servidor" onclick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Validar Javascript" OnClientClick="return validar();" /> <asp:Button ID="Button3" runat="server" Text="Validar Servidor" onclick="Button3_Click" /> </form> </body> </html>
Listagem 8. HTML da página
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; namespace DicasAspNet { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Limpar(this); } protected void Button3_Click(object sender, EventArgs e) { StringBuilder oStringBuilder = new StringBuilder(); Validar(this, oStringBuilder); if (oStringBuilder.ToString() != String.Empty) { ScriptManager.RegisterStartupScript(this, typeof(Page), "Validar", "alert('" + oStringBuilder.ToString() + "');", true); } } public void Limpar(Control controlP) { foreach (Control ctl in controlP.Controls) { if (ctl is TextBox) { ((TextBox)ctl).Text = String.Empty; } else if (ctl.Controls.Count > 0) { Limpar(ctl); } } } public void Validar(Control controlP, StringBuilder oStringBuilder) { foreach (Control ctl in controlP.Controls) { if (ctl is TextBox) { TextBox oTextBox = (TextBox)ctl; if (oTextBox.Text.Trim() == String.Empty) { oStringBuilder.Append("Campo " + oTextBox.Attributes["description"] + " em branco!\\n"); } } else if (ctl.Controls.Count > 0) { Validar(ctl, oStringBuilder); } } } } }
Listagem 9. Arquivo .CS da página
Figura 1. Layout do Exemplo
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados