我有一个gridview(称为grdSearchResults),其中包含指向pdfs的链接。 pdf网址是从数据库返回的,但我不知道如何将网址添加到网格视图中的图像按钮控件。
这是我的代码隐藏:
List<SearchResults> search = _searchRepository.GetFactFileSearchResults(results); grdSearchResults.DataSource = search; grdSearchResults.DataBind();
这是我的aspx页面代码:
<asp:TemplateField HeaderText="FILE TYPE" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton runat="server" ID="_imgbtnPreview" OnClientClick="<%# Container.DataItem("DownloadUrl") %>" ImageUrl="~/images/fileType_pdf.png" /> </ItemTemplate>
但是这会产生错误(“服务器标签形成不好”)任何想法如何解决这个问题?感谢
答案 0 :(得分:2)
我假设您要调用javascript函数OnClientClick
。但你没有向我们展示它,所以很难提供帮助。
您还可以在ImageButton's
(我通常更喜欢)中设置RowDataBound
ImageUrl
:
protected void grdSearchResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView rv = (DataRowView) row.DataItem;
ImageButton imgbtnPreview = (ImageButton)e.Row.FindControl("_imgbtnPreview");
imgbtnPreview.ImageUrl = rv.Row.Field<String>("DownloadUrl");
}
}
答案 1 :(得分:1)
您的OnClientClick应该在外部使用单引号
OnClientClick='<%# Container.DataItem("DownloadUrl") %>'
图像可以是
<asp:Image runat="server" ID="x" ImageUrl='<%# String.Format("~/{0}", Eval("ImageUrl")) %>' />