469,622 Members | 2,114 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,622 developers. It's quick & easy.

substitute img when EVAL file name is not found

I'm hoping there's a simple way to do this. I need to show a dummy image in
an asp image object if the file is missing. Here's my asp.net 2.0 markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I don't
know how. Can someone help me out?

Thanks,

Keith
Jun 27 '08 #1
10 1533
Probably the easiest way is to call a protected method that accepts type
object (e.g., Eval("GradPhotoFileName") ) -- and returns the proper string
url to the image, or the alternate image url.
--Peter
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy image
in
an asp image object if the file is missing. Here's my asp.net 2.0 markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith

Jun 27 '08 #2
I appreciate the hint but being pretty new to all of this (asp.net) I have
no idea how to go about doing that. I'm fine with VB and can create subs and
functions just fine so if that's what you mean I can do that part I guess
but implementing it in my markup below is not remotely clear to me. I need
as much help as possible.

THanks,

Keith

"Peter Bromberg [C# MVP]" <pb*******@nospammaam.yahoo.comwrote in message
news:30**********************************@microsof t.com...
Probably the easiest way is to call a protected method that accepts type
object (e.g., Eval("GradPhotoFileName") ) -- and returns the proper
string
url to the image, or the alternate image url.
--Peter
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy image
in
an asp image object if the file is missing. Here's my asp.net 2.0
markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith

Jun 27 '08 #3
Do this from the codebehind. You have the value of "GradPhotoFileName", you
can check if System.Io.File.Exists() and if it doesn't, set the .ImageUrl
property of your imgGrad image to your dummy image URL. I do not know how
you're binding your image to the data though, but how you assign the values
in the codebehind will depend on the method you're using.

--
---------------------------------------------------
S.M. Altaf [MVP]
http://www.mendhak.com/
"Keith G Hicks" <kr*@comcast.netwrote in message
news:#m**************@TK2MSFTNGP04.phx.gbl...
I appreciate the hint but being pretty new to all of this (asp.net) I have
no idea how to go about doing that. I'm fine with VB and can create subs
and
functions just fine so if that's what you mean I can do that part I guess
but implementing it in my markup below is not remotely clear to me. I need
as much help as possible.

THanks,

Keith

"Peter Bromberg [C# MVP]" <pb*******@nospammaam.yahoo.comwrote in
message
news:30**********************************@microsof t.com...
>Probably the easiest way is to call a protected method that accepts type
object (e.g., Eval("GradPhotoFileName") ) -- and returns the proper
string
>url to the image, or the alternate image url.
--Peter
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy
image
in
an asp image object if the file is missing. Here's my asp.net 2.0
markup:
>
<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>'
ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith


Jun 27 '08 #4
Here's what I've done so far:

The following markup for an asp:image is in an aspx file in my root folder:

<asp:Image runat="server" ID="imgGradLarge" ImageUrl='<%#
imageFileToDisplay("~/Images/ClassmatePics/", val("GradPhotoFileName"))
%>'></asp:Image>

This VB.net code is in my App_Code folder in a file caled MyUtils.vb

Public Shared Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If System.IO.File.Exists(imageFilePath & "/" & imageFileName) Then
imageFileToDisplay = imageFilePath & "/" & imageFileName
Else
imageFileToDisplay = imageFilePath & "/NoClassmatePic.jpg"
End If
End Function

I'm sure there's more wrong that I am not aware of but for starters I get
this error:

Compiler Error Message: BC30451: Name 'imageFileToDisplay' is not declared.

If you are tempted to respond with "You need to declare
'imageFileToDisplay'" then please don't respond. I need to know HOW to do
that in the aspx markup. I haven't found anything that explains how to do
that.

If you see anything else I need to correct, please feel free to be as
specific as possible.

I really need specific coding help. I'm a bit lost on this right now. Pseudo
code suggestions are not what I'm looking for. I need someone to either show
me (I'm still learning) how to corrrect the above code or at least point me
to a website that expains (with actual example code) how to do what I'm
trying to do.

Keith

"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy image
in
an asp image object if the file is missing. Here's my asp.net 2.0 markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith


Jun 27 '08 #5
Ok, I moved my function into the codebehind file for the page as follows:

Protected Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If File.Exists(ResolveUrl(imageFilePath) & imageFileName) Then
imageFileToDisplay = imageFilePath & imageFileName
Else
imageFileToDisplay = imageFilePath & "NoClassmatePic.jpg"
End If
End Function

and it runs without errors. The problem is that the
ResolveUrl(imageFilePath) only returns part of the path like this:

/mysite/...

but I need

C:\Inetpub\wwwroot\mysite\......

What vb.net function will give me this?

Keith
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eI*************@TK2MSFTNGP02.phx.gbl...
Here's what I've done so far:

The following markup for an asp:image is in an aspx file in my root
folder:
>
<asp:Image runat="server" ID="imgGradLarge" ImageUrl='<%#
imageFileToDisplay("~/Images/ClassmatePics/", val("GradPhotoFileName"))
%>'></asp:Image>

This VB.net code is in my App_Code folder in a file caled MyUtils.vb

Public Shared Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If System.IO.File.Exists(imageFilePath & "/" & imageFileName) Then
imageFileToDisplay = imageFilePath & "/" & imageFileName
Else
imageFileToDisplay = imageFilePath & "/NoClassmatePic.jpg"
End If
End Function

I'm sure there's more wrong that I am not aware of but for starters I get
this error:

Compiler Error Message: BC30451: Name 'imageFileToDisplay' is not
declared.
>
If you are tempted to respond with "You need to declare
'imageFileToDisplay'" then please don't respond. I need to know HOW to do
that in the aspx markup. I haven't found anything that explains how to do
that.

If you see anything else I need to correct, please feel free to be as
specific as possible.

I really need specific coding help. I'm a bit lost on this right now.
Pseudo
code suggestions are not what I'm looking for. I need someone to either
show
me (I'm still learning) how to corrrect the above code or at least point
me
to a website that expains (with actual example code) how to do what I'm
trying to do.

Keith

"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy image
in
an asp image object if the file is missing. Here's my asp.net 2.0
markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith


Jun 27 '08 #6
Hhhmmmm....

Not sure, but if your markup is calling imageFileToDisplay, then you should
be able to change both of the imageFileToDisplay in your IF and ELSE
statements to return... i.e.

return imageFilePath & "/NoClassmatePic.jpg"
--
Best regards,
Dave Colliver.
http://www.AshfieldFOCUS.com
~~
http://www.FOCUSPortals.com - Local franchises available
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eI*************@TK2MSFTNGP02.phx.gbl...
Here's what I've done so far:

The following markup for an asp:image is in an aspx file in my root
folder:

<asp:Image runat="server" ID="imgGradLarge" ImageUrl='<%#
imageFileToDisplay("~/Images/ClassmatePics/", val("GradPhotoFileName"))
%>'></asp:Image>

This VB.net code is in my App_Code folder in a file caled MyUtils.vb

Public Shared Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If System.IO.File.Exists(imageFilePath & "/" & imageFileName) Then
imageFileToDisplay = imageFilePath & "/" & imageFileName
Else
imageFileToDisplay = imageFilePath & "/NoClassmatePic.jpg"
End If
End Function

I'm sure there's more wrong that I am not aware of but for starters I get
this error:

Compiler Error Message: BC30451: Name 'imageFileToDisplay' is not
declared.

If you are tempted to respond with "You need to declare
'imageFileToDisplay'" then please don't respond. I need to know HOW to do
that in the aspx markup. I haven't found anything that explains how to do
that.

If you see anything else I need to correct, please feel free to be as
specific as possible.

I really need specific coding help. I'm a bit lost on this right now.
Pseudo
code suggestions are not what I'm looking for. I need someone to either
show
me (I'm still learning) how to corrrect the above code or at least point
me
to a website that expains (with actual example code) how to do what I'm
trying to do.

Keith

"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
>I'm hoping there's a simple way to do this. I need to show a dummy image
in
>an asp image object if the file is missing. Here's my asp.net 2.0 markup:

<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>' ToolTip="Click
to
>enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
>in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
>"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
>know how. Can someone help me out?

Thanks,

Keith



Jun 27 '08 #7
I have never used resolveurl, so not sure what it does. However, you should
probably look at Server.MapPath instead of resolveurl.
--
Best regards,
Dave Colliver.
http://www.AshfieldFOCUS.com
~~
http://www.FOCUSPortals.com - Local franchises available
"Keith G Hicks" <kr*@comcast.netwrote in message
news:er**************@TK2MSFTNGP02.phx.gbl...
Ok, I moved my function into the codebehind file for the page as follows:

Protected Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If File.Exists(ResolveUrl(imageFilePath) & imageFileName) Then
imageFileToDisplay = imageFilePath & imageFileName
Else
imageFileToDisplay = imageFilePath & "NoClassmatePic.jpg"
End If
End Function

and it runs without errors. The problem is that the
ResolveUrl(imageFilePath) only returns part of the path like this:

/mysite/...

but I need

C:\Inetpub\wwwroot\mysite\......

What vb.net function will give me this?

Keith
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eI*************@TK2MSFTNGP02.phx.gbl...
>Here's what I've done so far:

The following markup for an asp:image is in an aspx file in my root
folder:
>>
<asp:Image runat="server" ID="imgGradLarge" ImageUrl='<%#
imageFileToDisplay("~/Images/ClassmatePics/", val("GradPhotoFileName"))
%>'></asp:Image>

This VB.net code is in my App_Code folder in a file caled MyUtils.vb

Public Shared Function imageFileToDisplay(ByVal imageFilePath As String,
ByVal imageFileName As String) As String
If System.IO.File.Exists(imageFilePath & "/" & imageFileName) Then
imageFileToDisplay = imageFilePath & "/" & imageFileName
Else
imageFileToDisplay = imageFilePath & "/NoClassmatePic.jpg"
End If
End Function

I'm sure there's more wrong that I am not aware of but for starters I get
this error:

Compiler Error Message: BC30451: Name 'imageFileToDisplay' is not
declared.
>>
If you are tempted to respond with "You need to declare
'imageFileToDisplay'" then please don't respond. I need to know HOW to do
that in the aspx markup. I haven't found anything that explains how to do
that.

If you see anything else I need to correct, please feel free to be as
specific as possible.

I really need specific coding help. I'm a bit lost on this right now.
Pseudo
>code suggestions are not what I'm looking for. I need someone to either
show
>me (I'm still learning) how to corrrect the above code or at least point
me
>to a website that expains (with actual example code) how to do what I'm
trying to do.

Keith

"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy
image
in
an asp image object if the file is missing. Here's my asp.net 2.0
markup:
>
<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>'
ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith




Jun 27 '08 #8
Well I got it working. So for anyone who ever has a similar question here's
what I ended up doing:

My code behind function is as follows (with Imports System.IO at the top of
the file):

Protected Function imageFileToDisplay(ByVal imageFileName As String) As
String
If File.Exists(System.AppDomain.CurrentDomain.BaseDir ectory &
"Images\ClassmatePics\" & imageFileName) Then
imageFileToDisplay = "~/Images/ClassmatePics/" & imageFileName
Else
imageFileToDisplay = "~/Images/ClassmatePics/NoClassmatePic.jpg"
End If
End Function

System.AppDomain.CurrentDomain.BaseDirectory is getting the entire path of
the site's root (C:\Inetpub\wwwroot\mySite for example). I suppose I could
have passed the path from the aspx file to the code behind but it's 6 of
one, 1/2 dozen of the other IMO. I didn't use ResolveURL because that
doesn't give the the whole base path.

My markup in the aspx page is as follows:

<asp:Image ID="imgGrad" runat="server" BorderColor="DarkGray"
BorderStyle="Solid" BorderWidth="1px" Height="130px" ImageUrl='<%#
imageFileToDisplay(Eval("GradPhotoFileName")) %>' ToolTip="Click to enlarge"
/>

it all works perfectly fine.

Keith
Jun 27 '08 #9
Probably Server.MapPath("relativepathtoimage") would do the trick for you.
Peter

"Keith G Hicks" <kr*@comcast.netwrote in message
news:eQ**************@TK2MSFTNGP06.phx.gbl...
Well I got it working. So for anyone who ever has a similar question
here's
what I ended up doing:

My code behind function is as follows (with Imports System.IO at the top
of
the file):

Protected Function imageFileToDisplay(ByVal imageFileName As String) As
String
If File.Exists(System.AppDomain.CurrentDomain.BaseDir ectory &
"Images\ClassmatePics\" & imageFileName) Then
imageFileToDisplay = "~/Images/ClassmatePics/" & imageFileName
Else
imageFileToDisplay =
"~/Images/ClassmatePics/NoClassmatePic.jpg"
End If
End Function

System.AppDomain.CurrentDomain.BaseDirectory is getting the entire path of
the site's root (C:\Inetpub\wwwroot\mySite for example). I suppose I could
have passed the path from the aspx file to the code behind but it's 6 of
one, 1/2 dozen of the other IMO. I didn't use ResolveURL because that
doesn't give the the whole base path.

My markup in the aspx page is as follows:

<asp:Image ID="imgGrad" runat="server" BorderColor="DarkGray"
BorderStyle="Solid" BorderWidth="1px" Height="130px" ImageUrl='<%#
imageFileToDisplay(Eval("GradPhotoFileName")) %>' ToolTip="Click to
enlarge"
/>

it all works perfectly fine.

Keith

Jun 27 '08 #10
Actually the easiest and most efficient way is to do it with javascript on
the client side, just do this on your Page_Load routine:

imgGrad.Attributes("onerror") = "this.src='<dummy image relative path>;'"

That will cause the user's browser to load the dummy image if it doesn't
find the original.

Hope that helps,
Fernando Rodriguez, MCP


"S.M. Altaf [MVP]" <sm*****@omgplzdntspammekthxbaimsn.comwrote in message
news:3F**********************************@microsof t.com...
Do this from the codebehind. You have the value of "GradPhotoFileName",
you can check if System.Io.File.Exists() and if it doesn't, set the
.ImageUrl property of your imgGrad image to your dummy image URL. I do
not know how you're binding your image to the data though, but how you
assign the values in the codebehind will depend on the method you're
using.

--
---------------------------------------------------
S.M. Altaf [MVP]
http://www.mendhak.com/
"Keith G Hicks" <kr*@comcast.netwrote in message
news:#m**************@TK2MSFTNGP04.phx.gbl...
>I appreciate the hint but being pretty new to all of this (asp.net) I
have
no idea how to go about doing that. I'm fine with VB and can create subs
and
functions just fine so if that's what you mean I can do that part I guess
but implementing it in my markup below is not remotely clear to me. I
need
as much help as possible.

THanks,

Keith

"Peter Bromberg [C# MVP]" <pb*******@nospammaam.yahoo.comwrote in
message
news:30**********************************@microso ft.com...
>>Probably the easiest way is to call a protected method that accepts type
object (e.g., Eval("GradPhotoFileName") ) -- and returns the proper
string
>>url to the image, or the alternate image url.
--Peter
"Keith G Hicks" <kr*@comcast.netwrote in message
news:eZ**************@TK2MSFTNGP05.phx.gbl...
I'm hoping there's a simple way to do this. I need to show a dummy
image
in
an asp image object if the file is missing. Here's my asp.net 2.0
markup:
>>
<asp:Image ID="imgGrad" runat="server" BorderColor="DimGray"
BorderStyle="Solid" BorderWidth="1px" Height="120px" ImageUrl='<%#
"~/Images/ClassmatePics/" & Eval("GradPhotoFileName") %>'
ToolTip="Click
to
enlarge" /></td>
"GradPhotoFileName" is stored in a field in a table. If the file name
stored
in the table is "JeffJones.jpg" but there is no "JeffJones.jpg" file
in
the
"~/Images/ClassmatePics/" folder then I have a dummy jpg image that I
want
>to show ("MissingPhoto.jpg").

I'm hoping there's an easy way to do that maybe in the EVAL code but I
don't
know how. Can someone help me out?

Thanks,

Keith


Jun 27 '08 #11

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

7 posts views Thread by robcarlton | last post: by
9 posts views Thread by HikksNotAtHome | last post: by
4 posts views Thread by J. J. Cale | last post: by
5 posts views Thread by Steve Richter | last post: by
6 posts views Thread by Nathan Sokalski | last post: by
reply views Thread by gouraud | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.