p;
Não são raras as vezes em que precisamos adicionar algum comportamento dinâmico a uma página Web. Exibir mensagens de alerta ou confirmação, redirecionar usuários para outras URLs, alterar a visibilidade de um controle, são tarefas necessárias em qualquer aplicação.
Porém, nem sempre queremos fazer uma nova requisição ao servidor para resolver coisas simples. Este artigo trará algumas idéias de como solucionar isso via JavaScript, de maneira simples e organizada.
A classe TJavaScriptDirector
O primeiro passo é criar uma classe que ficará responsável por manipular todo o código JavaScript da nossa aplicação. A classe TJavaScriptDirector é um exemplo (Listagem 1).Você pode encontrar o código completo da classe no endereço para download deste artigo, e apenas adicionar a unit ao projeto que fará uso das suas funcionalidades.
Listagem 1. A unit JavaScriptDirector
unit JavaScriptDirector;
interface
uses
System.Web. System.Web.UI.
System.Web.UI.HtmlControls,
System.Web.UI.WebControls. System.Text;
type
TJavaScriptDirector = class
private
class function HTMLEncode (
s: string); string; static;
class procedure RegisterStartupScript (
AOwner: System.Web.UI.Page; Key: string;
Code: stringBuilder); static;
class procedure PrintStartScrip t(
Code: stringBuilder); static;
class procedure PrintEndScript (
Code: stringBuilder); static;
class procedure PrintConfirm (Question: string;
Code: stringBuilder); static;
class procedure PrintAlert (Information: string;
Code: stringBuilder); static;
class procedure PrintRedirect (ToPage: string;
Code: stringBuilder); static;
public
class procedure AddStartupSetFocus (
AOwner: System.Web.UI.Page;
const ElementID : string); static;
class procedure AddStartupShowMessage (
AOwner: System.Web.UI.Page;
const AMessage: string); static;
class procedure AddStartupShowMessageAndRedirect (
AOwner: System.Web.UI.Page; const Information,
ToPage: string); static;
class procedure AddStartupConfirmAndRedirect (
AOwner: System.Web.UI.Page;Question,
RedirectTo: string); static;
class procedure AddFunctionSetVisibility (
AOwner: System.Web.UI.Page); static;
...