Обслуживание изображения с универсальным обработчиком в представлении списка. Является ли это возможным? - PullRequest
3 голосов
/ 27 февраля 2011

В настоящее время на моей веб-странице я загружаю изображения в объект 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 ]

1 голос
/ 27 февраля 2011

Да, это правильный путь. Ваш синтаксис для привязки 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")
0 голосов
/ 27 февраля 2011

Попробуйте это

<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

...