1

ドキュメントが存在する場合にのみ表示されるはずの Gridview にハイパーリンクがあります。

DocumentExistsDataBinding プロセスの一部として通過するフィールドにドキュメントが存在するかどうかはわかっています。

私の HyperlinkField は次のようになります。

<asp:HyperLinkField DataNavigateUrlFields="DocumentID" Visible='<%# Eval("DocumentExists")%>' HeaderText="Document" Text="Download" DataNavigateUrlFormatString="~/KeyTracking/DownloadDocument.aspx?ID={0}" />

別のSO回答からコードの「評価」部分を見つけました。

ただし、実行すると、次のエラーが表示されます。

データバインディング式は、DataBinding イベントを持つオブジェクトでのみサポートされます。System.Web.UI.WebControls.HyperLinkField には DataBinding イベントがありません。データバインディング式は、DataBinding イベントを持つオブジェクトでのみサポートされます。System.Web.UI.WebControls.HyperLinkField には DataBinding イベントがありません。

どうすればこれを機能させることができますか?

4

1 に答える 1

0

解決策を見つけました。

HyperLinkField を使用する代わりに、ハイパーリンクを持つアイテム テンプレートを使用します。その後、評価はうまくいきます。

<asp:TemplateField>
     <ItemTemplate>
        <asp:HyperLink runat="server" ID="hf" Visible='<%# Eval("DocumentExists")%>' Text="Download"  NavigateUrl='<%# Eval("DocumentID") %>'/>
     </ItemTemplate>
</asp:TemplateField>
于 2013-11-12T11:03:13.537 に答える