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 style="width:70px;">
                    <asp:Label runat="server" Text="Nome: "></asp:Label>
                </td>
                <td style="width:130px;">
                    <asp:TextBox ID="TextBox1" runat="server" description="Nome">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="width:70px;">
                    <asp:Label ID="Label1" runat="server" Text="Idade:  "></asp:Label>
                </td>
                <td style="width:130px;">
                    <asp:TextBox ID="TextBox2" runat="server" description="Idade">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="width:70px;">
                    <asp:Label ID="Label2" runat="server" Text="Rua: "></asp:Label>
                </td>
                <td style="width:130px;">
                    <asp:TextBox ID="TextBox3" runat="server" description="Rua">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="width:70px;">
                    <asp:Label ID="Label3" runat="server" Text="Bairro: "></asp:Label>
                </td>
                <td style="width:130px;">
                    <asp:TextBox ID="TextBox4" runat="server" description="Bairro">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="width:70px;">
                    <asp:Label ID="Label4" runat="server" Text="Cidade: "></asp:Label>
                </td>
                <td style="width:130px;">
                    <asp:TextBox ID="TextBox5" runat="server" description="Cidade">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="width:70px;">
                    <asp:Label ID="Label5" runat="server" Text="UF: "></asp:Label>
                </td>
                <td style="width:130px;">
                    <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
Layout do Exemplo
Figura 1. Layout do Exemplo