by Israel Aece
14. August 2005 23:36
Há momentos em que necessitamos recuperar o conteúdo HTML que é renderizado por um determinado controle. Um cenário típico é quando precisamos enviar o código HTML gerado por um controle DataGrid por email para um usuário. Isso evitará percorrer novamente a fonte de dados para montar uma String para definí-la como o corpo do email.
Facilmente, podemos recuperar este conteúdo sem muito código. Como todos os controles WebControls herdam direta ou indiretamente de System.Web.UI.Control, todos implementam o método RenderControl(HtmlTextWriter) e assim nos devolverá o conteúdo (em código HTML), por ele gerado. Veremos o código abaixo, que é necessário para recuperar:
|
|
|
| Dim sw As New System.IO.StringWriter |
| Dim htmlTW As New HtmlTextWriter(sw) |
| Me.DataGrid1.RenderControl(htmlTW) |
| Me.TextBox1.Text = sw.ToString() |
| htmlTW.Close() |
|
|
Como vemos acima, estamos querendo recuperar o código HTML que é gerado pelo DataGrid1. Criamos um objeto do tipo StringWriter, qual armazenará o output do controle. Depois disso, passamos o StringWriter para o HtmlTextWriter que é responsável por recuperar os dados HTML já formatado. Após configurado o HtmlTextWriter, passamos ele para o método RenderControl do DataGrid (ou qualquer outro controle) e este por sua vez armazenará na StringWriter o retorno.
1108c63b-f4da-49c8-a77b-cd39a3eb5142|0|.0
Tags: ui
ASP.NET