0

PDFへのリンクを含むグリッドビュー(grdSearchResultsと呼ばれる)があります。pdfのURLはデータベースから返されますが、グリッドビュー内のimagebuttonコントロールにURLを追加する方法がわかりません。

これが私のコードビハインドです:

List<SearchResults> search = _searchRepository.GetFactFileSearchResults(results);
        grdSearchResults.DataSource = search;
        grdSearchResults.DataBind();

そして、これが私のaspxページコードです:

<asp:TemplateField HeaderText="FILE TYPE" ItemStyle-HorizontalAlign="Center">  
            <ItemTemplate>  
                &nbsp;<asp:ImageButton runat="server" ID="_imgbtnPreview" OnClientClick="<%# Container.DataItem("DownloadUrl") %>" ImageUrl="~/images/fileType_pdf.png" /> 
            </ItemTemplate>  

しかし、これはエラーを引き起こします(「サーバータグが適切に形成されていません」)これを修正する方法はありますか?ありがとう

4

2 に答える 2

2

javascript関数を呼び出したいと思いますOnClientClick。しかし、あなたは私たちにそれを見せていないので、助けるのは難しいです。

ImageButton's ImageUrlを設定することもできますRowDataBound(私は通常これを好みます):

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");
    }
}
于 2012-10-17T08:05:54.733 に答える
1

OnClientClickは、外側で一重引用符を使用する必要があります

OnClientClick='<%# Container.DataItem("DownloadUrl") %>'

そして、画像は

<asp:Image runat="server" ID="x" ImageUrl='<%# String.Format("~/{0}", Eval("ImageUrl")) %>' />
于 2012-10-17T08:01:01.497 に答える