我有一个后续问题How to display an image based on SelectedValue in a GridView?如何在新窗口中显示的图像
我真的很想做的是有我的GridView控件一个ViewImage按钮,以便在单击时,图像显示在新浏览器窗口的新页面上。我会怎么做?我想也许我需要创建一个
<asp:ButtonField>
如何处理点击和如何获取的图像,以一种新的形式对diplay在新浏览器窗口?
非常感谢您的关注。
我有一个后续问题How to display an image based on SelectedValue in a GridView?如何在新窗口中显示的图像
我真的很想做的是有我的GridView控件一个ViewImage按钮,以便在单击时,图像显示在新浏览器窗口的新页面上。我会怎么做?我想也许我需要创建一个
<asp:ButtonField>
如何处理点击和如何获取的图像,以一种新的形式对diplay在新浏览器窗口?
非常感谢您的关注。
您可以使用TemplateColumn,在该TemplateColumn中,您可以定义一个按钮,您可以在其中放置javascript函数以打开新窗口。
例子:
<asp:TemplateField>
<ItemTemplate>
<input type="button" onclick="javascript:ShowImageInNewPage('PageToShowImage.aspx?tradeId=<%# Eval("TradeId") %>');" />
</ItemTemplate>
</asp:TemplateField>
的“ShowImageInNewPage”功能声明与选定图片的网址,弹出/打开新窗口的自定义功能。
在PageToShowImage.aspx,声明img标签:
<asp:Image ID="imgBlah" runat="server" />
在代码PageToShowImage.aspx的背后:
protected void Page_Load(object sender, EventArgs e)
{
// this is querystring from GridView page
if(Request.QueryString["tradeId"] != null)
{
imgBlah.Src = "GetImage.aspx?entityId=" + tradeId + "&entityType=T";
}
else
{
imgBlah.Src = "~/images/no-image.jpg"; // set no image
}
}
HTH
我希望你处理与浏览器支持的图像格式。假设你是,你不需要ButtonField
。正如Arief所建议的,一种方法是在TemplateColumn
中使用<asp:HyperLink>
。
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="hyperLink1" runat="server" NavigatUrl="UrlToYourViewImagePage" Text="View Image" />
</ItemTemplate>
</asp:TemplateField>
如果你想要的形象打开一个新窗口,建立一个window.open呼吁每个超链接的NavigateUrl。
是的,我正在使用存储在SQL Server中的.gif图像。我不太确定我应该放在NavigateURL中,因为正如我在Arief的评论中提到的,我有另一个名为GetImage.aspx的页面处理来自数据库的图像请求。你能帮忙吗?我也不确定如何格式化它,以便它会调用JavaScript函数。 – 2010-11-05 13:01:33
感谢您的帮助,我决定使用Arief的解决方案。 – 2010-11-05 13:46:50
谢谢我创建了一个javascript函数来打开一个新窗口。然而,图像正在从数据库中检索,并由一个名为GetImage.aspx的页面处理,该页面接受查询字符串,如我的问题中的链接所示。我觉得我在这里纠结在代码中,我不知道如何使用我的参数填充URL。我如何将当前行的tradeId(主键)添加到ImageURL中? – 2010-11-05 12:58:30
我刚编辑我的答案,检查它是否可以帮助你。 – Arief 2010-11-05 13:07:49
伟大的东西,现在完美工作!谢谢你的帮助。 – 2010-11-05 13:46:24