0
<form id="form1" runat="server">
<div>

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="bookname"  Height="504px" 
        Width="289px">
        <Columns>
            <asp:TemplateField HeaderText="image">
                <ItemTemplate>
                    <asp:Image ID="Image1" runat="server" 
                        ImageUrl='<%# String.Format("~/path/to/image/" + Eval("image")) %>' />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("image") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="bookname" HeaderText="bookname" ReadOnly="True" 
                SortExpression="bookname" />
            <asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT [image], [bookname], [price] FROM [books]">
    </asp:SqlDataSource>

私の画像フィールドは(SQLサーバー2005)に保存されています...そしてファイルアップロードボタンを介してデータベースに画像が挿入されました...そして今、グリッドビューにデータを表示したいのですが、グリッドビューに表示されている画像フィールドやその他のフィールドは他の理由で表示したくありませんフィールドはテキスト形式です。

4

3 に答える 3

1
<asp:Image ID="Image1" runat="server" ImageUrl='<%# String.Format("~/path/to/image/{0}" , Eval("image")) %>' />   

あなたの問題は、string.Format引数を受け入れることであり、concat操作を使用していました。ここで私は使用し{0} - stands for argument at/for index 0ました。同様に、複数の引数に対して使用できますstring.Format("{0} {1} {2}",var1,var2,var3).

また、上記では、{0}がabc.pngのような拡張子の付いたファイル名に置き換えられると想定しています。

<form id="form1" runat="server">
    <div>
       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="bookname"  Height="504px" 
            Width="289px">
            <Columns>
                <asp:TemplateField HeaderText="image">
                    <ItemTemplate>
                        <asp:Image ID="Image1" runat="server" 
                            ImageUrl='<%# String.Format("~/path/to/image/{0}" , Eval("image")) %>' />
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("image") %>'></asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="bookname" HeaderText="bookname" ReadOnly="True" 
                    SortExpression="bookname" />
                <asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT [image], [bookname], [price] FROM [books]">
        </asp:SqlDataSource>
于 2012-05-26T22:18:23.453 に答える
0

画像はデータベースに保存されるため、ハンドラーを使用して画像を取得する必要があります。ここで参照を取得できますhttp://www.codeproject.com/Articles/271590/Show-an-image-saved-in-a-SQL-Table-on-an-ASP-Net-I

于 2012-05-26T22:10:32.960 に答える
0

むしろ次のようなものを期待します

ImageUrl='<%# this.ResolveUrl("~/path/to/image/" + Eval("image")) %>' />

それよりもstring.Format

于 2012-05-26T20:05:01.373 に答える