0

フィールドの 1 つが URL であるデータベースから取得するオブジェクトがあります。このデータをグリッドビューに表示しています。URL 列を、対応する URL を指す「ダウンロード」という一連のリンクにしたいと思います。

私は現在、次のものを持っています:

<asp:GridView ID="my_gv" runat="server" AutoGenerateColumns = "false" 
            GridLines="None" Width="100%" AllowSorting="True" 
            CssClass="table table-bordered table-condensed">
            <AlternatingRowStyle BackColor="#F5F5F5" />
            <Columns>
                <asp:HyperLinkField  DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download"  />
            </Columns>    
        </asp:GridView>

これは機能していないようです。エントリはリンクのように青色ですが、マウスでホバーしても実際には URL が呼び出されません (カーソルは「リンク」カーソルに変わりません)。生成された HTML を見ると、これらは<a>タグですが、属性は含まれていませhrefん。なんで?これを機能させるために何が逃したのですか?次のものを入力します。

        private void populateElementView()
        {
            List<MyElement> elements = database.getGeneratedElements();
            // elements has a .location property
            my_gv.DataSource = elements;
            my_gv.DataBind();

        }

詳細については、URL はコンピューター上のファイルを指しています。URL「testing」を使用してアイテムを手動で挿入すると、実際には機能しますが、実際のファイルパスは機能しません。

4

2 に答える 2

1

これを試してみてください。ここでは、DataNavigateUrlFormatString プロパティを使用しています。

Gets or sets the string that specifies the format in which the URLs for the hyperlinks in a HyperLinkField object are rendered.

<asp:HyperLinkField  DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download" DataNavigateUrlFormatString="{0}" />

編集 :

ファイルをサーバーの場所に置くことができ、場所フィールドには次のような仮想パスがありますMusicFiles/File1.avi

これで、{0} が MusicFiles/File1.avi またはフィールド値を意味するHyperLinkFieldよう にURL をフォーマットできますhttp://localhost//Download/{0}location

<asp:HyperLinkField  DataNavigateUrlFields = "location" Text = "Download link" HeaderText = "Download" DataNavigateUrlFormatString="http://localhost//Download/{0}" />

これは、展開するときに役立ち、ユーザーがサーバーからファイルをダウンロードできると思います。

于 2013-03-12T13:44:51.450 に答える
0

この方法を試してください:

<asp:HyperLink ID="HyperLink1" Text="Download link" NavigateUrl='<%# Eval("location")%>' runat="server"></asp:HyperLink>

または、別のコントロールを使用する場合は、次のように値を NavigateUrl にバインドします。

<%# Eval("location")%>
于 2013-03-12T13:44:17.830 に答える