簡體   English   中英

C#如何將圖像加載到代碼隱藏的生成表中?

[英]C# How Do I Load an image into a code-behind generated table?

我正在使用asp.net/c#創建要下載的PDF文件。 通過創建一系列載入到div創建的HTMLGenericControl中的HTMLTable,這些工作全部在后面的代碼中完成。 然后將該div轉換為字符串,然后傳遞給生成PDF文件的函數。 下面是一個代碼示例:

//This dataset contains the student's name, age and grade, want it for all sections
List<studentExportPersonal> lsep = sp.getExportPersonal(exportStudents);

//Page Header containg Grade, Student Name, and Age
HtmlGenericControl div = new HtmlGenericControl("div");

foreach (studentExportPersonal sep in lsep)
{
    foreach (string sec in secs)
    {
        HtmlTable identityTable = new HtmlTable();
        div.Controls.Add(identityTable);

        identityTable.Width = "100%";
        identityTable.Border = 0;
        identityTable.Style.Add("margin-bottom", "20px");

        HtmlTableRow identityTR = new HtmlTableRow();
        identityTable.Rows.Add(identityTR);

        HtmlTableCell tdGrade = new HtmlTableCell();
        identityTR.Cells.Add(tdGrade);
        tdGrade.Style.Add("font-size", "30px");
        tdGrade.Align = "center";
        tdGrade.RowSpan = 2;
        tdGrade.InnerText = sep.si.studentGrade;

        HtmlTableCell tdStudentName = new HtmlTableCell();
        identityTR.Cells.Add(tdStudentName);
        tdStudentName.Style.Add("font-size", "30px");
        tdStudentName.Align = "center";
        tdStudentName.InnerText = sep.si.studentName;

        HtmlTableCell tdStudentAge = new HtmlTableCell();
        identityTR.Cells.Add(tdStudentAge);
        tdStudentAge.Style.Add("font-size", "30px");
        tdStudentAge.Align = "center";
        tdStudentAge.RowSpan = 2;
        tdStudentAge.InnerText = sep.si.studentAge + " Years Old";

        HtmlTableRow identityTR1 = new HtmlTableRow();
        identityTable.Rows.Add(identityTR1);

        HtmlTableCell tdPic = new HtmlTableCell();
        identityTR1.Cells.Add(tdPic);

        Bitmap studPic;

        if (HttpContext.Current.Request.IsLocal)
            studPic = (Bitmap)System.Drawing.Image.FromFile(@"C:\studentPics\" + sep.si.studentPicID, true);
        else
            studPic = (Bitmap)System.Drawing.Image.FromFile(@"E:\Website\Cascade\studentPics\" + sep.si.studentPicID, true);
    }
}

export dmc = new export();

var sb = new StringBuilder();
div.RenderControl(new HtmlTextWriter(new StringWriter(sb)));
string s = sb.ToString();

dmc.exportPDF("Student Profiles", "Portrait", s);

在foreach循環的底部,您可以看到我正在創建一個位圖變量,我的問題是,如何將其加載到HTMLTableCell變量中?

您可以將圖像添加到單元格中,就像將單元格添加到行中一樣。

HtmlImage image = new HtmlImage();
image.Src ="/studentPics/" + sep.si.studentPicID;
tdPic.Controls.Add(image);

但是,當我查看您的代碼時,我認為GridView是更好的選擇。 您可以將List直接綁定到GridView。

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

if (!Page.IsPostBack)
{
    GridView1.DataSource = lsep;
    GridView1.DataBind();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM