【发布时间】:2011-05-05 12:33:31
【问题描述】:
我对@987654321@有一个后续问题
我真正想做的是在我的 GridView 控件上有一个 ViewImage 按钮,这样当单击它时,图像就会显示在新浏览器窗口中的新页面上。我该怎么做?我在想也许我需要创建一个
<asp:ButtonField>
如何处理点击以及如何在新的网络浏览器窗口中的新表单上显示图像?
非常感谢您的关注。
【问题讨论】:
我对@987654321@有一个后续问题
我真正想做的是在我的 GridView 控件上有一个 ViewImage 按钮,这样当单击它时,图像就会显示在新浏览器窗口中的新页面上。我该怎么做?我在想也许我需要创建一个
<asp:ButtonField>
如何处理点击以及如何在新的网络浏览器窗口中的新表单上显示图像?
非常感谢您的关注。
【问题讨论】:
您可以使用 TemplateColumn,在该 TemplateColumn 中您可以定义一个按钮,您可以在其中放置 javascript 函数以打开新窗口。
示例:
<asp:TemplateField>
<ItemTemplate>
<input type="button" onclick="javascript:ShowImageInNewPage('PageToShowImage.aspx?tradeId=<%# Eval("TradeId") %>');" />
</ItemTemplate>
</asp:TemplateField>
“ShowImageInNewPage”函数是您声明的自定义函数,用于使用选定的图像 url 弹出/打开新窗口。
在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>
如果您希望图像在新窗口中打开,请为每个 HyperLink 的 NavigateUrl 构建一个 window.open 调用。
【讨论】: