由於asp.net中的Image控件是在System.Web.UI.WebControls命名空間中,所以不能像在winform中那樣通過byte[]直接顯示圖片。
既然這樣,就只能曲線救國了。這裡的例子是這樣的思路:teacherdetial.aspx是最終用來顯示文字和圖片的頁面,但是由於我們的圖片需要曲線救國,所以這裡另外建立一個pic.aspx。在pic.aspx頁面中我們顯示圖片,而將teacherdetial.aspx中的Image控件的url設為pic.aspx。最終我們完成了要求。
teacherdetial.aspx的代碼如下
復制代碼 代碼如下:
<td height="25" align="right">照片: </td>
<td>
<asp:Image ID="Image1" runat="server" Width="80" Height="80"/>
</td>
teacherdetial.aspx.cs的代碼如下
復制代碼 代碼如下:
private string tid = null;
protected void Page_Load(object sender, EventArgs e)
{
tid = Request.Params["tid"];
this.Image1.ImageUrl = "~/teacher/pic.aspx?tid=" + tid;
}
這樣我們就將圖片的顯示功能轉移到了另一個頁面,而我們的Image控件只是顯示另一個頁面就可以了。
pic.aspx的代碼很簡單,只是新建了一個頁面就可以了。
pic.aspx.cs的代碼如下:
復制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
string tid = Request.Params["tid"].ToString();
TeacherDao td = new TeacherDao();
Response.BinaryWrite(td.getPic(tid));
}