ASP.NET 如何在郵件內容嵌入GridView控制項資料

摘要:ASP.NET 如何在郵件內容嵌入GridView控制項資料

今天,藍色小舖的一個朋友在MSN上問了我一個問題,就是如何把GridView的資料放在電子郵件內容中,由於我也沒這樣做過,經研究一番總算是把這個問題解決了,其中比較要注意的是,由於這個方法會發生一個錯誤

  • 例外詳細資訊: System.Web.HttpException: 型別 'GridView' 的控制項 'GridView1' 必須置於有 runat=server 的表單標記之中。

所以必須在程式碼中覆寫VerifyRenderingInServerForm這個方法。

問題內容:
Blueshop - Peter~ 說:
hi  您好   不知您現在是否有空   有ㄧ個關於VBNET的EMAIL問題想請教您
Keep Walking 力挺你的夢想 說:
好ㄚ
Keep Walking 力挺你的夢想 說:
EMAIL 怎麼了嗎
Blueshop - Peter~ 說:
小弟目前在發送mail的同時還需要將頁面上的gridview畫面及ㄧ些label的值
加在mail裡面ㄧ同發送出去
想請教各位大大這樣要如何來實做呢?
小弟的想法是將gridview及label包含在某個"標記"裡面
只要取得"標記"的值就可以???

解決方案:

using System.IO;
using System.Text;
using System.Net.Mail;

//......

    private string GridViewToHtml(GridView gv)
    {
        StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter(sb);
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        gv.RenderControl(hw);
        return sb.ToString();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        MailMessage mail = new MailMessage();
        mail.Body = GridViewToHtml(GridView1);
        mail.IsBodyHtml = true;
        //......
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        
    }
運行結果
APC Capture - 2008.02.21 20.23.35 - 001