我上传了一张图片,并将Url(uploadedImage.FileName)添加到了数据库中。然后我将gridview绑定到dataBase并将DataImageUrl字段设置为存储uploadedImage.FileName的数据库的PictureUrl组,因此图像显示在gridview中(仍然在控制大小方面有点挣扎)。
我只想知道如何将此图像信息添加到会话变量中,以便它可以显示在不同的页面上。 这就是我到目前为止所做的事情(我还添加了一个会话["标题"]这很简单,因为它只显示另一页上的文本值)。
if(e.CommandName ==" addToSession") {
//get the row index stored in the CommandArgument property
int index = Convert.ToInt32(e.CommandArgument);
//get the gridview row where the command is raised
GridViewRow selectedRow = ((GridView)e.CommandSource).Rows[index];
//values stored in the text propert of the cells
string title = selectedRow.Cells[1].Text;
string pictureUrl = selectedRow.Cells[3].Text; ???????
//set the sesion variable ["Title"] to the title
Session["Title"] = title;
//this is where i am experiencing some problems
Session["ImageID"] = pictureUrl; ???????
Response.Redirect("RateBook.aspx");
}
我应该在另一页上添加一个图像按钮并尝试将其绑定到gridview的ImageField吗?
问候
答案 0 :(得分:2)
看过会话字符串了吗?我从来没有使用网格,但我认为你不能这样做...我认为网格将从数据库中为您流式传输图像。要在以后访问同一图像而不再查询数据库,您将需要存储整个图像,而不仅仅是存储在会话中不再有效的链接(如base64或base128字符串),并提供将图像流回的URL。
答案 1 :(得分:2)
为什么不使用会话变量将url存储到服务器上的图像中?如果 你需要显示它,只需使用:
<img src=<%= Session["ImageID"] %>>