Asp.net 如何在新窗口中显示图像

Asp.net 如何在新窗口中显示图像,asp.net,image,gridview,Asp.net,Image,Gridview,我还有一个问题要问 我真正想做的是在GridView控件上有一个ViewImage按钮,这样当单击该按钮时,图像将显示在新浏览器窗口中的新页面上。我该怎么做?我在想也许我需要创造一个 <asp:ButtonField> 如何处理单击,如何使图像在新的web浏览器窗口中显示在新窗体上 非常感谢您的关注。您可以使用TemplateColumn,在该TemplateColumn中,您可以定义一个按钮,在该按钮中放置javascript函数以打开新窗口。 例如: HTH我希望您正在处

我还有一个问题要问

我真正想做的是在GridView控件上有一个ViewImage按钮,这样当单击该按钮时,图像将显示在新浏览器窗口中的新页面上。我该怎么做?我在想也许我需要创造一个

<asp:ButtonField>

如何处理单击,如何使图像在新的web浏览器窗口中显示在新窗体上


非常感谢您的关注。

您可以使用TemplateColumn,在该TemplateColumn中,您可以定义一个按钮,在该按钮中放置javascript函数以打开新窗口。

例如:


HTH

我希望您正在处理支持浏览器的图像格式。假设您是,您不需要
按钮字段
。一种方法是对每个超链接的NavigateUrl使用
调用。

谢谢,我创建了一个javascript函数来打开一个新窗口。但是,该图像是从数据库中检索的,由一个名为GetImage.aspx的页面处理,该页面使用查询字符串,如我的问题中的链接所示。我觉得这里的代码太复杂了,我不知道如何用我的参数填充URL。如何将当前行的tradeId(主键)添加到ImageURL?还有一件事,您知道如何使新打开的窗口将自身大小调整为图像的大小吗?如果图像具有固定大小,只需使用GridView页面上window.open javascript函数的参数即可。如果没有,则必须在GridView页面上获取大小信息,并将其作为window.open函数的参数传递。是的,我使用的是存储在SQL Server中的.gif图像。我不确定应该在NavigateURL中放什么,因为正如我在对Arief的评论中提到的,我有另一个名为GetImage.aspx的页面来处理来自数据库的图像请求。你能帮忙吗?我也不确定如何格式化它,以便它调用javascript函数。谢谢你的帮助,我决定使用Arief的解决方案。
<asp:TemplateField>
    <ItemTemplate>
        <input type="button" onclick="javascript:ShowImageInNewPage('PageToShowImage.aspx?tradeId=<%# Eval("TradeId") %>');" />
    </ItemTemplate>
</asp:TemplateField>
<asp:Image ID="imgBlah" runat="server" />
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
    }
}
<asp:TemplateField>
    <ItemTemplate>
        <asp:HyperLink ID="hyperLink1" runat="server" NavigatUrl="UrlToYourViewImagePage" Text="View Image" />
    </ItemTemplate>
</asp:TemplateField>