in Eski Blog Yazılarım

İp ucu: Asp.Net RenderControl

Asp.Net sayfalarında runat="server" olarak işaretlenmiş kontrollerin HTML textlerini alma ihtiyacınız doğabilir. Bunu Web Kontrolü’nün (Control) RenderControl() metodu ile yapabiliyoruz.
RenderControl metodu HtmlTextWriter tipinde parametre alıyor, HtmlTextWriter yapıcı metodunda (Constructor) da StringWriter tipinde bir parametre alıyor. Bunlar birbirlerini yazabilme kabiliyeti ile kontrol’ün HTML çıktısını kolaylıkla erişmenizi sağlıyor. Şöyle ki;

        StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
panel.RenderControl(htw); //panel burda asp.net sayfasında herhangi bir kontrol
string control_text = sw.GetStringBuilder().ToString();

Böylece control_text değişkenimize kontrol’ün sayfada gösterilmekte olan HTML çıktısını atamış oluyoruz. Bu durum asp.net sayfasının bir bölümünün e-posta ile göndermek durumunda kaldığım zaman lazım oldu. Oldukça da kolay bir şekilde işlemi gerçekleştirdik.

Yorum Bırak

Comment