Отображать изображение в gridview в asp.net

Я не уверен, что я делаю неправильно. Я пытаюсь отобразить изображения на странице, он будет отображать URL, но не изображение. Я пробовал как поле шаблона, так и поле изображения. С Firebug я могу видеть значение источника изображения.

aspx-страница:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ImageID" DataSourceID="Images">
    <Columns>
        <asp:BoundField DataField="ImageID" HeaderText="ImageID" InsertVisible="False" ReadOnly="True" SortExpression="ImageID" />
        <asp:BoundField DataField="InciID" HeaderText="InciID" SortExpression="InciID" />
        <asp:TemplateField HeaderText="Imagepath" SortExpression="Imagepath">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Imagepath") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:image runat="server" ID="Label1" ImageUrl='<%# Bind("Imagepath") %>'></asp:image>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="ImageDescription" HeaderText="ImageDescription" SortExpression="ImageDescription" />
        <asp:BoundField DataField="Category" HeaderText="Category" SortExpression="Category" />
        <asp:ImageField DataImageUrlField="Imagepath">
            <ControlStyle Height="100px" Width="100px" />
        </asp:ImageField>
    </Columns>
</asp:GridView>

Исходный код веб-страницы от Firebug:

<td><img id="ctl00_ContentPlaceHolder1_GridView1_ctl15_Label1" src="images\curiouskids.jpg"></td>
<td><img style="height:100px;width:100px;" src="images\curiouskids.jpg"></td>

person Nita    schedule 05.02.2014    source источник
comment
Вы убедились, что images\curiouskids.jpg существует и находится на правильном пути относительно вашей страницы?   -  person mason    schedule 06.02.2014
comment
Попытка добавить это к URL-адресу изображения ~\. Что-то вроде ~\images\curiouskids.jpg.   -  person Praveen    schedule 06.02.2014
comment
@msm&bball — изображение закрывается. @Praveen - тильда работает, но косая черта должна быть обращена вперед   -  person Nita    schedule 06.02.2014


Ответы (3)


Все ваши косые черты должны быть прямыми косыми чертами для URL-адресов.

images/curiouskids.jpg
person Dave Mroz    schedule 05.02.2014
comment
Спасибо, Дэйв, косая черта изменила ситуацию. Однако он вытащил только изображения, которые были в папке изображений, а не в папке на диске C. - person Nita; 06.02.2014
comment
Имеет смысл. Изображения должны быть частью сайта, чтобы они были доступны пользователю. - person Dave Mroz; 06.02.2014
comment
Спасибо, Дэйв. Я использовал повторитель в своем другом проекте, где я смог создать URL-адрес пути к серверу, на котором хранятся изображения. - person Nita; 06.02.2014

Я согласен с Дэйвом и Правином.

косая черта должна быть прямой косой чертой, и вы должны попытаться добавить ~/.

person Guy Nethery    schedule 06.02.2014

Спасибо вам, ребята. Я принял ваше предложение и изменил его, как написано в приведенном ниже коде. Теперь у меня есть миниатюра 100x100, а под ней есть текст «Увеличенный вид», и нажатие на нее откроет полное изображение в новом окне. Я добавил тильду и косую черту в код здесь и удалил их из кода после загрузки.

<asp:TemplateField>
      <EditItemTemplate>
           <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("Imagepath") %>'></asp:TextBox>
      </EditItemTemplate>
       <ItemTemplate>
            <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Imagepath", "~/images/{0}") %>' Width="150px" Height="150px" /><br />
             <asp:HyperLink ID="HyperLink1" runat="server" Text="Enlarged view" Target="_blank"  NavigateUrl='<%# String.Format("~/images/{0}", Eval("Imagepath"))%>' />
       </ItemTemplate>
 </asp:TemplateField>
person Nita    schedule 06.02.2014