2017-01-12 7 views
0

In meinem ASPX Code habe ich das Element folgendeErsetzen einer Zeichenfolge in DataBinder.Eval

<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# Eval("ProductImage") %>'            /> 

Der Wert für diese kehrte mit einer Beispiel-URL ein Bild URl von einem Content-Delivery-Netzwerk ist wie 'http://cdn.xyz.com'

Ich möchte die URL in 'https://cdn.xyz.com' konvertieren

Ich habe versucht, ImageUrl='<%# Eval("ProductImage").Replace("http","https") %>' zu tun, die scheint nicht zu funktionieren. Irgendwelche Ideen?

+0

Woher kommt 'ProductImage'? Willst du es nicht ändern? auf '.cs' (Code hinter) Seite? –

+0

@teovankot, ich habe keinen Zugriff auf den Code hinter. Es ist in einer DLL – ScottyDoesKnow

+0

nicht sicher, aber haben Sie versucht, dies: '((String) Eval (" ProductImage ")). Ersetzen (" http "," https ")'? –

Antwort

4

können Sie damit umgehen mag:

<%# ((string)Eval("ProductImage")).Replace("http", "https") %> 

Und wenn die Zeichenfolge Null

<%# ((string)Eval("ProductImage") ?? string.Empty).Replace("http", "https") %> 

werden kann, und es wird sein:

<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# ((string)Eval("ProductImage") ?? string.Empty).Replace("http", "https") %>' 

oder wenn Sie sicher, dass Ihre Zeichenfolge wird in keinem Fall Null sein.

<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# ((string)Eval("ProductImage")).Replace("http", "https") %>' 
2

die Sie interessieren, könnten Sie müssen zunächst für Replace-String konvertieren zu arbeiten:

<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# Eval("ProductImage").ToString().Replace("http","https") %>' 

Eval kehrt object und Replace würde nicht auf object arbeiten. Sie müssen zuerst Cast/Convert die object in String zurückgeben und dann die Replace Methode auf dieser String verwenden.

Verwandte Themen