ASP.NET - Usando o FreeTextBox


Se você já precisou usar o recurso de edição de textos em páginas web com recursos de formatação já sabe que a tarefa não trivial, não é mesmo...

Nada como encontrar aquele controle pronto que atende exatamente as suas necessidades.  O FreeTextBox e o FCKeditor são dois controles que podem ser usados para realizar edição de texto em projetos Web possuindo bons recursos de formatação.

Eles se integram facilmente a plataforma .NET e podem ser baixados gratuitamente dos seguintes sítios:

Neste artigo eu mostro como você pode usar o componente FreeTextBox em sua aplicações ASP .NET. (Em outro artigo vou falar do componente FCKEditor)

Usando o FreetextBox

O FreeTextBox é um editor HTML que a partir da versão 3.0 trouxe todos os seus recursos contidos no arquivo FreeTextBox.dll, então, basta você referenciar este arquivo no seu projeto e incluir a seguinte declaração na sua página ASP .NET:

<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

Agora para usar o controle basta referenciar o controle na página, entre as tags <form runat="server"> da seguinte forma:

<FTB:FreeTextBox id="FreeTextBox1" runat="Server" />

Abra o Visual Web Developer 2005 e crie um novo web site usando template ASP .NET web site com o nome uFreeTextBox;

Em seguida faça uma referência no seu projeto ao arquivo FreeTextBox.dll clicando com o botão direito do mouse sobre o nome do projeto e selecionando a opção Add Reference;

Na janela Add Reference localize onde instalou o componente e selecione o arquivo clicando em OK;

Você pode criar uma referência para o FreeTextBox na ToolBox da seguinte forma:

Ao final você deverá ver na ToolBox o componente FreeTextBox que poderá ser usado simplesmente arrastando e soltando no seu projeto. (O componente ImageGallery também aparece na ToolBox junto com o FreeTextBox e serve para efetuar download de imagens que irei abordar em outro artigo.)

 

A seguir a selecione a página Default.aspx e inclua o código destacada abaixo nesta página :

 

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

<!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>Untitled Page</title>

</head>

<body>

<form id="Form1" runat="server">

   <FTB:FreeTextBox id="FreeTextBox1"  ToolbarLayout="paragraphmenu,fontsizesmenu;bold,italic,underline| bulletedlist,numberedlist" runat="Server" />

</form>

</body>

</html>


O modo Design irá exibir a seguinte interface:

 

 

Executando o projeto teremos:

 

 

Podemos configurar o FreeTextBox de diversas formas usando a janela de propriedades , na página  .aspx ou via código.


No exemplo a seguir eu estou usando o evento Load da página Default.aspx para definir a barra de ferramentas do componente na página:

 

Imports FreeTextBoxControls


Partial
Class _Default

      Inherits System.Web.UI.Page
 

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


Dim
toolbar1 As New
Toolbar()

toolbar1.Items.Add(New ParagraphMenu())

toolbar1.Items.Add(New FontSizesMenu())
 

FreeTextBox1.Toolbars.Add(toolbar1)


Dim
toolbar2 As New
Toolbar()


toolbar2.Items.Add(
New Bold())

toolbar2.Items.Add(New Italic())

toolbar2.Items.Add(New Underline())

toolbar2.Items.Add(New ToolbarSeparator())

toolbar2.Items.Add(New BulletedList())

toolbar2.Items.Add(New NumberedList())


FreeTextBox1.Toolbars.Add(toolbar2)


End
Sub

End Class

 

No nosso exemplo, para exibir mais opções inclua os valores na propriedade ToolbarLayout , os valores válidos são:

ParagraphMenu, FontFacesMenu, FontSizesMenu, FontForeColorsMenu,  FontForeColorPicker, FontBackColorsMenu, FontBackColorPicker, Bold, Italic, Underline, Strikethrough, Superscript, Subscript, InsertImageFromGallery, CreateLink, Unlink,  RemoveFormat, JustifyLeft, JustifyRight, JustifyCenter, JustifyFull, BulletedList, NumberedList, Indent, Outdent, Cut, Copy, Paste, Delete, Undo, Redo, Print, Save,  ieSpellCheck, StyleMenu, SymbolsMenu, InsertHtmlMenu, InsertRule, InsertDate, InsertTime, WordClean, InsertImage, InsertTable, EditTable, InsertTableRowBefore,   InsertTableRowAfter, DeleteTableRow, InsertTableColumnBefore, InsertTableColumnAfter, DeleteTableColumn, InsertForm, InsertForm, InsertTextBox, InsertTextArea,  InsertRadioButton, InsertCheckBox, InsertDropDownList, InsertButton, InsertDiv,  InsertImageFromGallery, Preview, SelectAll, EditStyle.

Alterando a declaração do componente na propriedade ToolBarLayout na página ASPX para:

<FTB:FreeTextBox id="FreeTextBox1" ToolbarLayout="paragraphmenu,fontsizesmenu;bold,italic,underline|bulletedlist,numberedlist, JustifyLeft, JustifyRight, JustifyCenter, JustifyFull,  NumberedList, Indent, Outdent, Cut, Copy, Paste, Delete, Undo, Redo" runat="Server" Height="250px" Width="400px" />

Iremos Obter:

Nota: Se você for usar o componente para enviar mensagens não esqueça de desabilitar o ValidateRequest definindo na página ASPX o seu valor como false:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" validateRequest="false" %>
 

 

Todas essas informações foram obtidas a partir do arquivo Readme.txt que vem com o download.

 

Finalizando podemos disser que o FreeTextBox é uma opção que deve ser considerada quando você precisa formatar textos HTML em sua aplicação ASP.NET.

 

Até o próximo artigo...


José Carlos Macoratti