Обслуживание изображения с универсальным обработчиком в представлении списка. Является ли это возможным?
В настоящее время на моей веб-странице я загружаю изображения в объект ListView следующим образом...
<ContentTemplate>
<asp:ListView ID="ListView1" runat="server">
<layouttemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</layouttemplate>
<ItemTemplate>
<td>
<asp:Image ID="Image1" runat="server"
ImageUrl = '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
Теперь я хотел бы использовать комбинацию универсального обработчика и объекта ListView для подачи изображений в ListView.
... универсальный вызов обработчика похож
~/Handlers/Image.ashx?img=
Как я могу объединить оба выше, чтобы служить изображениям?
Я пробовал что-то вроде следующего, но это не правильно
<asp:Image ID="Image1" runat="server"
ImageUrl = ~/Handlers/Image.ashx?img= & '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />
Так каков правильный путь?
2 ответа
Решение
Да, это правильный путь. Ваш синтаксис для привязки ImageUrl не правильный, хотя. Попробуй это:
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "~/Handlers/Image.ashx?img=" + Eval("Image")%>' />
Вы также можете использовать событие ItemDataBound, чтобы использовать такой код:
Image image1 = e.FindControl("Image1") as Image;
YourClass item = e.DataItem as YourClass;
image1.ImageUrl = String.Format("~/Handlers/Image.ashx?img={0}", item.Image")
Попробуй это
<ItemTemplate>
<asp:Hyperlink runat= "server" Text='<%#DataBinder.Eval(Container.DataItem,"ProductName").ToString()%>' NavigateUrl='<%# "page.aspx?Name=" & DataBinder.Eval (Container.DataItem,"ProductName").tostring %>' ID="ProductName"/>
</ItemTemplate>
Надеюсь, поможет
Источник: http://www.extremeexperts.com/Net/FAQ/PassingMulitpleParameterinURLLink.aspx