quarta-feira, 21 de janeiro de 2004

0

Navegação em diretórios/arquivos utilizando FSO

Olá pessoal,


Este é o meu primeiro post espero que seja útil.


Trata-se de um único script que pode ser utilizado para navegação/download entre arquivos/pastas armazenados em um servidor utilizando FSO do ASP.


Segue o código:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<title>Navegação em arquivos/pastas armazenados no Servidor utilizando FSO</title>
<body alink=black vlink=black link=black>


<!--
Título: Script para Navegação entre diretórios e arquivos em servidor WEB.
Versão: 1.0
Autor: Ricardo Vinicius de Godoi
Email:
rvgodoi@hotmail.com
Data: 21/01/2004
Requisitos: Servidor rodando IIS com suporte ao FilesystemObject.
-->
<%
'Bloco de código que faz com que a página não seja armazenada em cache, evitando que o usuário
'visualize arquivos/pastas que não estão mais no servidor ou não visualize arquivos/pastas novos:


Response.Buffer=true
Response.AddHeader "cache-control", "private"
Response.AddHeader "pragma", "no-cache"
Response.ExpiresAbsolute = #January 1, 1990 00:00:01#
Response.Expires=Now()-1
Response.AddHeader "Cache-Control", "must-revalidate"
Response.AddHeader "Cache-Control", "no-cache"
%>
<%
'Configurações do script:


'Parametro passado pela URL quando se clica em uma determinada pasta ou arquivo:
ParametroPasta = Request.QueryString("Pasta")


'A session abaixo deve ser alterada para o caminho físico onde estarão os arquivos e subdiretórios a serem acessados:
Session("Path") = "d:\apostilas\home\"&ParametroPasta&""
Path = Session("Path")
'A variável abaixo deve ser alterada para o caminho virtual das pastas no servidor:
PathVirtualArquivos = "/apostilas/home/"
'A variável abaixo deve ser alterada para o caminho virtual deste script:
PathScript = "/desenvolvimento/asp/colunas/arvoreFso/default.asp"


'Criando o objeto Filesystem Object:
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
'Setando o caminho que será indicado como pasta raiz:
Set Pasta = FSO.GetFolder(""&Path&"")
'Solicitando a lista de arquivos para a pasta raiz:
set arquivos = pasta.files
'Setando a pasta raiz:
set Raiz = Pasta
'Verificando as subpastas da pasta raiz:
Set Pastas = Raiz.SubFolders


'Verificando o Nome da pasta Raiz:
Nome = pasta.name


'Verificando se há subpastas:


contador = 0
for each subpastas in pastas
contador = contador+1
next


%>
</b>
<%
Response.write "<br><div align=left>"
Response.Write "<font face=arial size=2>"


if contador <> 0 then


'Fazendo um loop pelas subpastas da pasta raiz:
for each subpastas in Pastas
response.Write "<img border=0 src='fold.gif' align=top><a href='"&PathScript&"?Pasta="&ParametroPasta&"\"&subpastas.name&"'><font color = #003366>"&subpastas.name&"</font></a><br>"
next


end if


response.write "<br>"


'Fazendo um loop pelos arquivos da pasta:
Apostila = "apostilas"
for each arquivo in arquivos
response.write "<img border=0 src='file.gif' align='middle'>&nbsp;<a href='"&PathVirtualArquivos&""&ParametroPasta&"/"&arquivo.name&"'><font color = #0066cc>"&arquivo.name&"</a><br>"
next


Response.Write "</font>"
response.write "</div><br>"
%>


<hr color=black>
<font color=black face=Verdana size=2>
<a href='#' onClick='history.go(-1)'><font color=black>Voltar</font></a>&nbsp;|&nbsp;
<%
response.write "<a href='"&PathScript&"?Pasta="&ParametroPasta&"'>"
response.write "Refresh</font></a>"
%>
</font>
</body>
</html>



Esta matéria foi postada originalmente no ASP4Developers por Ricardo Vinicius de Godoi, que na época era "Analista de Sistemas/Suporte
Desenvolvedor JAVA/JSP/ASP/PHP/Oracle/JavaScript". Hoje, vai saber...

domingo, 4 de janeiro de 2004

0

ASP.NET – User Controls

ASP.NET – User Controls

Neste artigo vou dar os passos para criar um User Control básico no ASP.NET. Para o desenvolvimento, estou utilizando a linguagem C# e o aplicativo Web Matrix, que pode ser baixado gratuitamente do site do MSDN.


O que é um User Control?


Imagine que você tenha que construir um site que, em todas as páginas, possua, por exemplo, uma caixinha que contenha o nome e a descrição de um usuário logado no site. Você faz essa caixinha, copia o seu código em cada página do site, e então mostra o resultado ao seu cliente e... ele não gostou do jeito que essa caixinha está! Achou muito larga, não gostou da cor, não gostou da fonte, e te pede para mudar. Aí você volta para o seu computador pensando em todo o trabalho que você vai ter prá atualizar cada caixinha de cada página do seu site.


Usando um User Control, todo esse trabalho é cortado! Pense num user control como um pedaço de código que possui “vida própria”. Você cria o controle, adiciona-o na sua página como se adiciona uma caixa de texto ou um combo box, e toda alteração que você fizer no controle refletirá em todas as páginas.


User Controls no ASP.NET trazem os benefícios do encapsulamento de código, uso otimizado de memória, código compilado e a capacidade de fazer mudanças on the fly.


Criando a “cara” do controle...


O User Control que iremos criar é bem parecido com o que exemplifiquei acima. Ele terá duas labels para exibir um nome e um título, e algumas funcionalidades a mais. Primeiro, vamos criar o arquivo que irá conter o User Control. No caso, é um arquivo com extensão ascx.


Segue o código usado para gerar a interface do controle:


<p>
<asp:Label id="Label1" width="88px" backcolor="Silver" runat="server" font-bold="True"></asp:Label>
<br />
<asp:Label id="Label2" width="147px" backcolor="#E0E0E0" runat="server" font-bold="True" font-size="Large" height="35px" bordercolor="Black" borderstyle="Double"></asp:Label>
</p>


Dando inteligência ao User Control


Vamos agora criar o código que irá tratar os dados do nosso controle. Como iremos manter um nome e um título, criaremos duas variáveis para conter esses dados. Note que elas foram criadas como private, o que significa que elas não poderão ser acessadas diretamente pela página que irá conter o controle.


private string fNome;
private string fTitulo;


Para poder passar os dados a essas variáveis, vamos criar propriedades. Propriedades são membros da classe que expõe variáveis membro e objetos dessa classe. Parece uma redundância criar propriedade read-write para essas variáveis nesse nosso exemplo, já que elas são privadas, mas as propriedades nos permitem criar tratamentos aos dados que chegarão e sairão dessas variáveis. No nosso caso, como é um exemplo simples, não iremos tratar de nenhuma forma esses dados.


public string Nome{
   get{
      return fNome;
   }
   set{
      fNome = value;
   }
}


public string Titulo{
   get{
      return fTitulo;
   }
   set{
      fTitulo = value;
   }
}


Uma breve explicação de propriedades: O bloco get contém o código que irá dar o retorno da propriedade à quem a chamou. Já o bloco set, contém as instruções que atribuirão dados às variáveis. O objeto value representa o dado que está sendo atribuído à propriedade.


Vamos agora criar métodos, que são funções inerentes ao controle, mais especificamente à classe do User Control. O primeiro método servirá para exibir nas labels os dados do controle.


public void MostraDados(){
   Label1.Text = fTitulo;
   Label2.Text = fNome;
}


O método é público, pois queremos que ele seja visto pela página que irá contrer o controle. Ele simplesmente adiciona o conteúdo das variáveis aos respectivos labels.


O segundo método irá fazer com que a cor da label de baixo mude cada vez que o método for chamado. Veja que geramos aleatoriamente as cores, e depois as atribuímos às propriedades das labels.


public void MudaCor(){
   Random rnd = new Random(DateTime.Now.Millisecond);
   int Vermelho, Azul, Verde;


   Vermelho = rnd.Next(0,255);
   Azul = rnd.Next(0,255);
   Verde = rnd.Next(0,255);


   Label2.BackColor = Color.FromArgb(Vermelho, Verde, Azul);
   Label2.ForeColor = Color.FromArgb(255 - Vermelho, 255 - Verde, 255 - Azul);
}


Para gerar essas cores aleatoriamente, utilizamos a classe Random do .NET, que nos gera números aleatórios. A instrução


Random rnd = new Random(DateTime.Now.Millisecond);


cria um objeto do tipo Random, e o inicializa com o valor de DateTime.Now.Millisecond como a semente aleatória de onde serão gerados os números.


As instruções


Vermelho = rnd.Next(0,255);
Azul = rnd.Next(0,255);
Verde = rnd.Next(0,255);


geram os valores a serem utilizados para criar a cor, a partir do padrão RGB (Red, Blue, Green). Utilizamos o método Next do recém criado objeto rnd para obtermos os valores entre 0 e 255 que necessitamos prar criar a cor.


Label2.BackColor = Color.FromArgb(Vermelho, Verde, Azul);
Label2.ForeColor = Color.FromArgb(255 - Vermelho, 255 - Verde, 255 - Azul);


Note que nas instruçõs acima, criamos as cores a partir do método FromArgb, da classe Color. A cor utilizada na letra da label é a cor inversa da cor de fundo. Para que possamos utilizar a classe Color, precisamos importar seu namespace (Namespace no .NET é um conjunto de tipos que possuem funcionalidades relacionadas). Para fazer isso, adicionamos o seguinte comando ao início do arquivo:


<%@ Import Namespace="System.Drawing" %>


Assim terminamos a criação do nosso User Control. Segue a listagem do código completo do controle:


LabelControl.ascx
<%@ Control Language="C#" %>
<%@ Import Namespace="System.Drawing" %>
<script runat="server">


   private string fNome;
   private string fTitulo;

   public string Nome{
      get{
         return fNome;
      }
      set{
         fNome = value;
      }
   }

   public string Titulo{
      get{
         return fTitulo;
      }
      set{
         fTitulo = value;
      }
   }

   public void MudaCor(){
      Random rnd = new Random(DateTime.Now.Millisecond);
      int Vermelho, Azul, Verde;

      Vermelho = rnd.Next(0,255);
      Azul = rnd.Next(0,255);
      Verde = rnd.Next(0,255);

      Label2.BackColor = Color.FromArgb(Vermelho, Verde, Azul);
      Label2.ForeColor = Color.FromArgb(255 - Vermelho, 255 - Verde, 255 - Azul);
   }

   public void MostraDados(){
      Label1.Text = fTitulo;
      Label2.Text = fNome;
   }


</script>
<p>
<asp:Label id="Label1" font-bold="True" runat="server" backcolor="Silver" width="88px"></asp:Label>
<br />
<asp:Label id="Label2" font-bold="True" runat="server" backcolor="#E0E0E0" width="147px" borderstyle="Double" bordercolor="Black" height="35px" font-size="Large"></asp:Label>
</p>


O controle em execução


Agora que terminamos o controle, vamos criar uma página que fara o uso dele. Para isso, vamos criar uma página aspx.


Para que a página possa acessar o controle, devemos registrá-lo. Então inserimos a seguinte tag:


<%@ Register TagPrefix="Control1" TagName="LabelControl" Src="LabelControl.ascx" %>


Veja que ela informa o prefixo da tag (TagPrefix) a ser utilizado o controle, o nome do controle (TagName) e a sua localização (Src, no caso, o arquivo do controle está no mesmo diretório que a página aspx). Esses são informações básicas sem as quais o controle não funcionará.


Tendo o controle registrado, vamos inserir a tag do nosso User Control na página a justar suas propriedades.


<Control1:LabelControl id="MeuControle1" Nome="Galore" Titulo="ASP.NET" runat="server"></Control1:LabelControl>


Veja que ela segue as informações que utilizamos na hora de registrar o controle para a página (Control1:LabelControl). Veja que também temos o id do controle, que usaremos para identificá-lo dentro do código. Está vendo o Nome e Titulo? São as propriedades que criamos para o controle, e agora estamos passando valores para elas. Outro atributo essencial é o runat=”server”.


Vamos adicionar também um botão para que possamos chamar os métodos do controle.


<asp:Button id="Button1" onclick="Button1_Click" runat="server" Width="150px" Text="Mudar a Cor!!!"></asp:Button>


Agora vamos criar o código para responder aos eventos da página. Utilizaremos os eventos Page_Load e Button1_Click.


protected void Page_Load(object sender, EventArgs e){
   if(!IsPostBack)
   
   
MeuControle1.MostraDados();
}


private void Button1_Click(object sender, EventArgs e) {
   MeuControle1.MudaCor();
}


No primeiro evento pedimos para executar o método MostraDados, que faz com que os valores das variáveis que criamos no User Control sejam passadas para as labels do controle.


No segundo evento, que será executado toda vez que o botão for clicado, fazemos com que a cor do controle mude, utilizando nosso método MudaCor.


Abaixo está a listagem completa do código da página.


ChamaControl.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="Control1" TagName="LabelControl" Src="LabelControl.ascx" %>
<script runat="server">


   protected void Page_Load(object sender, EventArgs e){
      if(!IsPostBack)
         MeuControle1.MostraDados();
   }


   private void Button1_Click(object sender, EventArgs e) {
         MeuControle1.MudaCor();
   }


</script>
<html>
<head>
</head>
<body>
<p>
<Control1:LabelControl id="MeuControle1" Nome="Galore" Titulo="ASP.NET" runat="server"></Control1:LabelControl>
</p>
<form runat="server">
<asp:Button id="Button1" onclick="Button1_Click" runat="server" Width="150px" Text="Mudar a Cor!!!"></asp:Button>
</form>
</body>
</html>


Considerações finais


Nesse nosso simples exemplo, vimos que é fácil criar um controle customizado no ASP.NET, e que a sua utilização nos traz muitas vantagens, como o reaproveitamento e encapsulamento de código.



Esta matéria foi postada originalmente no ASP4Developers por Fabio Gouw, que na época era "Desenvolvedor, MCP.NET". Hoje, vai saber...

quarta-feira, 31 de dezembro de 2003

0

Ano novo, tudo novo!

Olá All,


sim, eu sei que está acontecendo novamente. Estou deixando o site um pouco de lado, demorado para responder os emails e quase não ficando de bobeira online. Esse ano que está acabando foi bastante corrido e, ao que tudo indica, o que vem não será diferente.


Mas isso não significa que continuarei tratando com relativa "indiferença" os e-colegas. Pelo contrário. Espero que nesse novo ano nós possamos estar mais próximos e entrar em contato com mais frequência.


Estou planejando o início efetivo do desenvolvimento do novo site agora em janeiro. Assim, não vou tentar desenvolver a maioria das funcionalidades offline para depois apresentar. Iremos fazer isso juntos, sem pressa, no decorrer do tempo.


Desejo, de todo coração, que o Ano Novo seja repleto de novidades e descobertas a todos os amigos que sempre me lembram de quando estou ficando muito distante.


Abraços!



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

segunda-feira, 15 de dezembro de 2003

0

Função para ordenar combos em Javascript

Esta simples função usa o algoritmo Bubblesort para ordenar os itens de uma combo sem perder o respectivo value.
<script language="Javascript">
 function OrdenaCombo(combo) {
  var Textos = new Array()
  var Valores = new Array()
  var n = combo.options.length
  for(i=0; i<n; i++) {Textos[i] = combo.options[i].text; Valores[i] = combo.options[i].value; }
  for (i=0; i<n; i++) {
    for (j=0; j<n-i; j++)
      if (Textos[j+1] < Textos[j]) {tmp = Textos[j]; Textos[j] = Textos[j+1]; Textos[j+1] = tmp; tmp = Valores[j]; Valores[j] = Valores[j+1]; Valores[j+1] = tmp; }
  }
  for(i=0; i<n; i++) {combo.options[0] = null; }
  for(i=0; i<n; i++) {combo.options[i] = new Option(Textos[i],Valores[i]); }
 }
</script>


Esta matéria foi postada originalmente no ASP4Developers por Daniel Ribeiro (site), que na época era "Programador ASP desde Março de 1999. Trabalhou em um provedor como desenvolvedor por 1 ano e em uma imobiliária desenvolvendo uma solução completa por mais 1 ano. Atualmente trabalha na DuPont do Brasil desenvolvendo sistemas Client-Server, em sua marioria, mas não se limitando a, usando ASP e SQLServer.". Hoje, vai saber...

terça-feira, 18 de novembro de 2003

0

Valide endereço de e-mail via Regular Expressions


Aqui está o código:


Dim objRegExpr As RegExp
Dim blnEmailOk As Boolean


Set objRegExpr = New RegExp


objRegExpr.Pattern = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
blnEmailOk = objRegExpr.Test(Text1.Text) 


Alguns simbolos usados na Expressão:


\w localiza somente letras e dígitos
\. localiza o caracter .
* localiza zero ou mais ocorrências do caracter precedente
+ localiza uma ou mais ocorrências do caracter precedente



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

0

Textarea nada, o negócio é HTMLAREA

Para aqueles que precisam de um editor On-line, ou seja, todo mundo, este além de ser excelente é FREE !!!


http://www.interactivetools.com/products/htmlarea/

Espero ter ajudado !



Esta matéria foi postada originalmente no ASP4Developers por Jefferson Faria Dias (site), que na época era "desenvolvedor em VB, ASP, XML, Javascript usando SQL Server. Atualmente migrando para o .Net, mais especificamente para o Vb.net ". Hoje, vai saber...

quarta-feira, 5 de novembro de 2003

1

Enviando o Formulário sem o Botão Submit


    Já me perguntaram algumas vezes como enviar um formulário sem utilizar um botão de Submit. As razões são as mais variadas: desde a estética da tela (muitas vezes o botão fica feio mesmo, pricipalmente se o design for arrojado, utilizando imagens e animação em Shockwave Flash) ou mesmo por razões funcionais, como no Internet Explorer, por exemplo, onde o formulário é enviado (sem qualquer pergunta ou confirmação!) quando o usuário tecla ENTER. Como resolver?
    A solução seria fazer o uso de uma função JavaScript, com um link chamando a função:


<script language="JavaScript">
function Enviar(NomeDoForm){

   document.forms[NomeDoForm].submit();
}
</script>


No link, você indica o NomeDoForm, variável que indica o nome do form que você deseja enviar. Desta maneira:


<a href="javascript: Enviar('formAluno')">Enviar</a>


O nome do form pode ser identificado no código HTML do form:


<form name="formAluno" method="post" action="aluno.asp">


Com as facilidades apresentadas pelo JavaScript, poderíamos fazer com que houvesse uma tela de confirmação antes de enviar. Desta maneira, incremetaríamos o código assim:


<script language="JavaScript">
function Enviar(NomeDoForm){

  var conf = false ;
  conf = confirm('Deseja realmente enviar?');
  if (conf){
    document.forms[NomeDoForm].submit();
  }

}
</script>


Note que esse tipo de estratégia que adotamos nos dá a flexibilidade de utilizarmos figuras como botões de Enviar ou até mesmo filmes Shockwave Flash animados que chamam a função JavaScript. Utilizando figuras, teríamos algo como:


<a href="javascript: Enviar('formAluno')"><img src="imagens/enviar.gif"></a>


No Flash, deve ser criado o botão que tenha como Action o seguinte código:


GetUrl("javascript: Enviar('formAluno')");


Obs.: O código utiliza document.forms pois ele é suportado por qualquer Browser, pois a notação NomeDoForm.submit() funciona somente no Internet Explorer. Ainda assim, é vantajoso utilizar document.forms mesmo que no IE, pois podemos contar com a flexibilidade de identificar qual form enviar mais facilmente.

Para saber um pouco mais sobre o envio de formulários via Javascript e suas vantagens leia o artigo Formulário com várias Ações?



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...

2

Inserindo figuras guardadas no banco de dados


O código abaixo demonstra como inserir em um documento HTML
qualquer uma figura guardada em uma base de dados.

<HTML>
<BODY>
Esta página mostra figuras cadastradas em uma base de dados<p>
<img src="figura.asp?cod=736">

<p>
<img src="figura.asp?cod=877">
</BODY>
</HTML>


O parâmetro "cod" é o código da figura na tabela onde está guardada.


Vejamos agora o código de "figura.asp":

<%
Response.Expires = 0

Response.Buffer = true
Response.Clear
Response.ContentType = "image/gif"

'bote aqui sua conexão Conn à base de dados

set qrFigura = Conn.Execute("select campofigura from tabela where cod =" & request.querystring("cod"))

Response.BinaryWrite qrFigura("campofigura")

qrFigura.Close

set qrFigura = nothing

Conn.Close
set Conn = nothing

Response.End
%>

Note que qualquer documento, HTML ou ASP, pode usar este script,
mesmo que esteja em outro servidor, bas
tando para tal indicar o endereço completo do script na Web.



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...

quinta-feira, 30 de outubro de 2003

0

Função de leitura de queries em JSCRIPT para (IB 6 / Firebird)

function lerquery(strSQL){
 var sNome  = Request.ServerVariables("SERVER_NAME");
 var sCaminho = Server.MapPath("<caminho_seu_DB>");


 var sConn = "DRIVER={Easysoft IB6 ODBC};" +
 "SERVER="+ sNome +";"+
 "DATABASE="+ sNome +":"+ sCaminho +";"+
 "UID=SYSDBA;"+
 "PWD=;"+
 "DIALECT=3;"+
 "CHARSET=ISO8859_1;"+
 "ROLE=";


 var cmd = new ActiveXObject("ADODB.Command");
 with (cmd)
 {
  ActiveConnection = sConn;
  CommandText = strSQL;
  CommandType = 1;
  CommandTimeout = 3;
  Prepared = true;
 }
 var lerquery = cmd.Execute();
 return(lerquery);
}



Esta matéria foi postada originalmente no ASP4Developers por César M. Conceição (site), que na época era "Analista / Programador Pleno, mais de 4 anos de experiência no desenvolvimento de sistemas online.(HTML/XHTML/ASP/JAVASCRIPT/DHTML/MS SQL/FIREBIRD/INTERBASE/ACCESS)". Hoje, vai saber...

sexta-feira, 17 de outubro de 2003

0

Salvar um Recordset em um arquivo TXT

O código ASP abaixo salva um recorset INTEIRO em um arquivo de texto, delimitado por ;


set fs = Server.CreateObject("Scripting.FilesystemObject")


set arquivo = fs.CreateTextFile(arquivo.txt)


arquivo.Write (rsgeral.GetString(adClipString, , ";", vbCrLf, ""))


 



Esta matéria foi postada originalmente no ASP4Developers por ROBSON MENDONÇA, que na época era "Desenvolvedor de Tecnologias Microsoft". Hoje, vai saber...

0

Apagar mais de um ítem em um listbox

Se você tem um botão que apaga um ítem em um listbox, sabe do problema que se tem quando tentamos apagar mais de um ítem. Esse código resolve o problema:


function apaga_item()
{
var f = document.frm1.list1.options.length;
var items = '';
for(var i = 0; i < f; i++)
{
if (document.frm1.list1.options[i].selected)
{
 items = items + ';' + i
}
}
items=items + ';';
var t = document.frm1.list1.options.length;
var f = -1;
for(var d = 0; d < t + 1; d++)
{
var s = ';'+d+';';
if(items.search(s)!=-1)
{
if(f==-1)
{
document.frm1.list1.options[d] = null;
f=d;
}
else
{
document.frm1.list1.options[f] = null;
}
}
}
}



Esta matéria foi postada originalmente no ASP4Developers por ROBSON MENDONÇA, que na época era "Desenvolvedor de Tecnologias Microsoft". Hoje, vai saber...

0

Validação de Data

Script para validar uma data enviada por um parâmetro, validando inclusive so o ano é bisexto


{
var a=document.frm1.data01.value
var chk    = 0;
var maxDay = 0;


var dd = a.slice(0,2)
var mm = a.slice(3,5)
var yyyy = a.slice(6,10)


maxDay = max_day(mm, yyyy); 


if((dd <= 0) || (dd > maxDay))
{ chk = 1;}
else if((mm <= 0) || (mm > 12))
{ chk = 1;}
else if((yyyy <= 0))
{ chk = 1;}


if(chk == 1)
{
alert('Data Inválida! Tente novamente');
document.frm1.data01.value='';
document.frm1.data01.focus()
}
else
{
document.frm1.submit();
}
}
function max_day(mn, yr)
{
   var mDay;
if((mn == 4) || (mn == 6) || (mn == 9) || (mn == 11))
{
mDay = 30;
}
else if(mn == 2)
{
mDay = isLeapYear(yr) ? 29 : 28;   
}
else
{
mDay = 31;
}
return mDay;


}


function isLeapYear(yr)
{
if (yr % 2 == 0)
return true;
return false;
}



Esta matéria foi postada originalmente no ASP4Developers por ROBSON MENDONÇA, que na época era "Desenvolvedor de Tecnologias Microsoft". Hoje, vai saber...

terça-feira, 14 de outubro de 2003

0

Combos de Datas

Esse código gera combos de acordo com a data passada por parametro. Caso nehuma data seja informada, o script usa a data atual.


 function GeraComboDia(d)
 dim data, dia, i, msg
  msg = ""
  data = trim(d)


  if data <> "" and isDate(data) then
   dia = day(data)
  else
   dia = day(now)
  end if
  
  for i = 1 to 31
   if i = dia then
    msg = msg & "<option value='" & i & "' selected>" & right("00" & i,2) & "</option>"
   else
    msg = msg & "<option value='" & i & "'>" & right("00" & i,2) & "</option>"
   end if
  next
  
  GeraComboDia = msg
 end function


 function GeraComboMes(d)
 dim data, mes, i, msg
  msg = ""
  data = trim(d)


  if data <> "" and isDate(data) then
   mes = month(data)
  else
   mes = month(now)
  end if
  
  for i = 1 to 12
   if i = mes then
    msg = msg & "<option value='" & i & "' selected>" & Meses(i) & "</option>"
   else
    msg = msg & "<option value='" & i & "'>" & Meses(i) & "</option>"
   end if
  next
  
  GeraComboMes = msg
 end function


 function GeraComboAno(d)
 dim data, ano, i, msg
  msg = ""
  data = trim(d)


  if data <> "" and isDate(data) then
   ano = year(data)
  else
   ano = year(now)
  end if
  
  for i = (year(now) - 5) to (year(now) + 5)
   if i = ano then
    msg = msg & "<option value='" & i & "' selected>" & i & "</option>"
   else
    msg = msg & "<option value='" & i & "'>" & i & "</option>"
   end if
  next
  
  GeraComboAno = msg
 end function


O gera combo de Ano usa apenas 10 anos (os 5 ultimos e os 5 proximos). Esses valores podem ser mudados de acordo com a utilidade.


Para gerar os combos use:


<select name="dia">
<%= GeraComboDia(now()) %>
</select>


<select name="mes">
<%= GeraComboMes(now()) %>
</select>


<select name="dia">
<%= GeraComboAno(now()) %>
</select>



Esta matéria foi postada originalmente no ASP4Developers por Danilo Freitas, que na época era "Programador em VB, VBScript e SQL Server.". Hoje, vai saber...

0

Valida E-mail via ASP

Essa funcao tem como base um email no formato minimo de x@x.x


 function ValidaEmail(text)
  dim x, strArr, strDot, valida
  x = trim(text)
  strArr = instr(x,"@")
  valida = true
  
  if strArr < 2 then
   valida = false
  else
   x = mid(x,strArr + 1,len(x))
   strDot = instr(x,".")


   if instr(x,"@") <> 0 then valida = false
   if strDot < 2 then valida = false
   x = mid(x,strDot + 1,len(x))
   if trim(x) = "" then valida = false
  end if
  
  ValidaEmail = valida
 end function


Para testar eh so usar:
if not ValidaEmail("x@x.x")then
  response.write("email invalido")
  response.end()
end if



Esta matéria foi postada originalmente no ASP4Developers por Danilo Freitas, que na época era "Programador em VB, VBScript e SQL Server.". Hoje, vai saber...

sexta-feira, 3 de outubro de 2003

0

Janelas Popup no Datagrid .net

Em meu Datagrid eu tenho uma coluna HyperLinkColumn.  Sempre que um usuário clicar nela, uma janela pop-up se abrirá com um conteúdo relativo ao link.


Isto parece fácil exceto por um problema: Uma janela extra se abre com o texto: [object]. 


Este é o código que cria a coluna Hyperlink: 


HyperLinkColumn col3 = new HyperLinkColumn();
col3.DataNavigateUrlFormatString = javascript:window.open('detalhe.aspx?id={0}'','','width=640;height=480;
scrollbars=1; resizable=1');"
col3.DataTextField = "Produto";
col3.DataNavigateUrlField = "CodProduto";
grid1.Columns.Add(col3);


O objeto Hyperlink instrui ao browser para avaliar a expressão e trocar a pagina corrente pelo seu resultado, a menos que esse resultado seja void.
O valor retornado por window.open é um objeto, cuja representação string é a palavra [object].


Para se livrar deste efeito colateral, certifique-se que a expressão avaliada resulta em void


Aqui segue o que eu fiz para evitar este problema:


Na página aspx:


<SCRIPT LANGUAGE="JavaScript">
<!--
   void function popUp(URL)
   {
      window.open(URL, 'detalhe', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=700,height=500,left=10,top=10');
   }
// -->
</script>


no code-behind, mudei a linha para:
col3.DataNavigateUrlFormatString = "javascript:popUp('detalhe.aspx?id={0}');";



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

quarta-feira, 1 de outubro de 2003

0

Como criar um XML via código ASP

<%
  Dim xmldoc
  Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")


  ' Checa se o documento tem algum conteudo
  If (xmldoc.childNodes.length = 0) Then
    ' Criando o documento XML
    Set root = xmldoc.createNode("element", "Hi-Tech", "")
    xmldoc.appendChild (root)


    Set onode = xmldoc.createNode("element", "Employee", "")
    onode.Text = "Gurpreet Singh"


    xmldoc.documentElement.appendChild (onode)
    Set inode = xmldoc.createNode("element", "Address", "")


    onode.appendChild (inode)


    Set child = xmldoc.createNode("element", "Address1", "")
    child.Text = "Nepean Ont"


    inode.appendChild (child)


    Set child = xmldoc.createNode("element", "Address2", "")
    child.Text = "Canada"
    inode.appendChild (child)
  End If

' salva o arquivo xml
  xmldoc.save (Server.Mappath("savedI2.xml"))
%>



Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...

quarta-feira, 17 de setembro de 2003

1

Tudo sobre txts leitura e criação

Este componente possui uma serie de propriedades e métodos para manipulação de arquivos e diretórios do servidor Web.


Para instanciar tal objeto numa página ASP escrevemos o seguinte código:


 


Dim Objeto


 


Set Objeto = Server.CreateObject("Scripting.FileSystemObject")
 


 


Esse objeto recém instanciado representa o Sistema de Arquivo do servidor Web. Devemos agora criar outro objeto(TextStream), a partir desse, para representar um determinado arquivo. Fazemos isso, utilizando o método OpenTextFile do FileSystemObject:


 


Set Arquivo = Objeto.OpenTextFile(Nome,modo,cria,formato)
 


 


Onde:


Nome
 Nome do arquivo a ser utilizado pelo script
 
Modo
 Modo de Abertura do arquivo. 1 para leitura, 2 para gravação por cima, 3 para gravação adicional.
 
Cria
 Valor Booleano que indica se o arquivo deve ser criado(true) ou não(false) caso não  exista.
 
Formato
 Indica o formato de gravação do arquivo a ser utilizado. -1 Unicode, 0 Ascii
 


 


Para lermos o conteúdo de um ar[quivo, podemos utilizar os seguintes métodos do objeto TextStream:


Read (quantidade)
 Lê um determinado número de caracteres do arquivo
 
ReadLine
 Lê uma linha inteira do arquivo
 
ReadAll
 Lê o arquivo inteiro de uma só vez
 


 


Mas se nos interessar gravar informações no arquivo, os métodos disponíveis são:


Write
 Grava uma string no arquivo
 
WriteLine
 Grava um string no arquivo, incluindo a quebra de linha
 
WriteBlankLines
 Grava um determinado número de linhas em branco num arquivo
 


 


Esse componente ActiveX ainda possui as seguintes propriedades:


 


AtEnOfLine
 Indica o fim de uma determinada linha do arquivo
 
AtEnOfStream
 Indica o Final do Arquivo
 
Column
 Indica em que coluna do arquivo estamos
 
Line
 Indica o número da linha atual do arquivo
 


 


O código a seguir mostra como abrimos um arquivo localizado no servidor WEB e exibimos seu conteúdo:


 


Exemplo 23.1 : Arquivo1.asp 


 


<% @Language=vbScript %>


<HTML><HEAD><TITLE>Curso ASP</TITLE></HEAD>


<BODY><CENTER>


<% dim final


   final = "</CENTER></BODY></HTML>"


   On Error Resume Next


   Set Obj = Server.CreateObject("Scripting.FileSystemObject")


   Set arquivo = Obj.OpenTextFile("D:\pessoas.txt",1)


   if Err then


       Response.write "Ocorreu um erro tentando abrir o arquivo!"


       Response.write final


       Response.End


   end if


   Response.Write "Lista de E-mails<BR>"


   Response.write "<HR>"


   do while arquivo.AtEndOfStream=false


     a = arquivo.Readline 


     response.write a & "<BR>"


     a = arquivo.Readline 


     response.write a & "<HR>"


   loop


   Response.Write "Nova Entrada"


   Response.Write "<FORM ACTION=Arquivo2.asp>"


   Response.Write "NOME : <INPUT TYPE=TEXT NAME=NOME><BR>"


   Response.Write "EMAIL : <INPUT TYPE=TEXT NAME=EMAIL><BR>"


   Response.Write "<INPUT TYPE=SUBMIT VALUE=ENVIAR></FORM>"


   REsponse.Write final


   arquivo.close


%>
 


 


A próxima página ASP mostra como escrever num arquivo localizado no servidor WEB. Lembrando que essa página deve ser acessada por um formulário WEB com um objeto de NAME=Nome e outro NAME=Email:


 


Exemplo 23.2 Arquivo2.asp


<% @Language=vbScript %>


<HTML><HEAD><TITLE>Curso ASP</TITLE></HEAD>


<BODY><CENTER>


<% dim final


   final = "</CENTER></BODY></HTML>"


   On Error Resume Next


   Set Obj = Server.CreateObject("Scripting.FileSystemObject")


   Application.Lock


   Set arquivo = Obj.OpenTextFile("D:\pessoas.txt",8)


   if Err then


       Response.write "Ocorreu um erro tentando abrir arquivo!"


       Response.write final


       Response.End


  end if


   Arquivo.WriteLine(Request("Nome"))


   Arquivo.WriteLine(Request("Email"))


   arquivo.close


   if Err then


       Response.write "Ocorreu um erro tentando gravar no arquivo!"


       Response.write final


       Response.End


   else


      Response.Write "Dados inseridos com sucesso!" & "<BR>"


      Response.Write "Nome:" & Request("Nome") & "<BR>"


      Response.Write "Email :" & Request("Email")


   end if


   Response.Write final


%>
 



Por Nissim Victor - 9167-9495


Web Developer



 


 



Esta matéria foi postada originalmente no ASP4Developers por Ozzy Sys Informatica LTDA, que na época era "Ozzy Sys Informatica LTDA -

Fabrica de software desenvolvido em
ASP , VB e plataforma .net ...
SQL , Oracle

Transformamos todos os seus problemas em soluções ...

( 011 ) 9167-9495". Hoje, vai saber...

terça-feira, 16 de setembro de 2003

3

Coloque notícias dinamicas no seu site

<html>
<head>
<script language='javascript'><!--
var speed=4500
i=0
j=0
m=0
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers)
setTimeout("window.onresize=regenerate",450)
}


function update(){
if (document.layers){
document.mensagem.document.submensagem.document.write(tnoticias[i])
document.mensagem.document.submensagem.document.close()
}
else
document.all.submensagem.innerHTML=tnoticias[i]


if (i<tnoticias.length-1)
i++
else
i=0
setTimeout("update()",speed)
}


function Inicio() {
   if (document.all||document.layers) {
      regenerate2();
      update();}}
var tnoticias = new Array();
// Aqui você atualiza as notícias do site
// Cuidado com as aspas duplas
tnoticias[0]="<p align='left'><font size='1' face='Verdana,Arial,Helvetica'>05/09/2003 - Com reforma, a carga tributária pode crescer 4,5%</font></p>";
tnoticias[1]="<p align='left'><font size='1' face='Verdana,Arial,Helvetica'>05/09/2003 - Corte de impostos pode entrar na agenda</font></p>";
tnoticias[2]="<p align='left'><font size='1' face='Verdana,Arial,Helvetica'>05/09/2003 - Reforma tributária ajuda a distribuição de renda</font></p>";
tnoticias[3]="<p align='left'><font size='1' face='Verdana,Arial,Helvetica'>03/09/2003 - Receita vai concentrar fiscalização em devedor que ficou fora do Refis</font></p>";
// Você pode retirar ou acrescentar noticias no vetor
--></script>
</head>


<body onload="Inicio()">
<table>
<tr><td width='100%' height='70' valign='top'><div id="mensagem">
<div id="submensagem">Aguarde...</div>
</div></td></tr></table>


<!-- resto da página - -->


</body>
</html>


[]'s



Esta matéria foi postada originalmente no ASP4Developers por Rogério César (Craz¥ Man) (site), que na época era "Analista de Sistemas, programador, web Designer.". Hoje, vai saber...

0

Utilizando Janelas Pop-up's menos chatas

Eu particularmente odeio janelas Pop-Up's, então desenvolvi algo bem simples utilizando cookies para que pessoas como eu, que visitam meu site, não fiquem aborrecidas com as janelas, escolhendo se quer que estas continuem abrindo.


<!--  Index.asp -->


<%function iif(condicao,sim,nao)
   if condicao then
      iif=sim
   else
      iif=nao
   end if
end function
popup=request.cookies("pop")%>


<html>
<head>
<script language='javascript'><!--
function AbreJanela() {
   window.open('propaganda.asp','_blank','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, menubar=no, top=0, left=0, width=310, height=410');}
--></script>
</head>
<body<%=iif(popup="nao",""," onload='AbreJanela()'"%>>


<!-- Resto da página -->


</body>
</html>


 


<!-- propaganda.asp -->


<html>


<body>


<!-- figuras e banners e etc. -->


<%if request.QueryString("mostra")="nao" then
   response.cookies("pop")="nao"
   response.cookies("pop").Expires = #January 01, 2030#
   response.write "<script>window.close();</script>"
end if%>

<a href='javascript:window.close();'>Fechar Janela</a>
<br><br>
<a href='propaganda.asp?mostra=nao'>Não quero mais que esta janela apareça</a>
</body>
</html>


Espero que ajude!


[]'s



Esta matéria foi postada originalmente no ASP4Developers por Rogério César (Craz¥ Man) (site), que na época era "Analista de Sistemas, programador, web Designer.". Hoje, vai saber...

quarta-feira, 10 de setembro de 2003

0

Deixe o ROBO te pegar !!!

Se voce mantém uma versão RSS do seu site e quer que ela seja catalogada pelos webbots e outros coloque o seguinte código nos elementos do cabeçalho:

<link rel="alternate" type="application/rss+xml" title="RSS" href="url para o rss">

Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...