Can't get subroutine/helper function to work in Datalist control

  • Thread starter Thread starter Chumley the Walrus
  • Start date Start date
C

Chumley the Walrus

I'm using a subroutine/helper function display an image (the image
would be displayed inside a datalist control's <itemtemplate> )

<script language="VB" runat="server">
Public Sub checkforimg(ByVal Imagesubprod1 As String)
If Imagesubprod1 <> "" then
response.write(Imagesubprod1)
Else
response.write("nbsp;")
End If
End Sub
</script>

..... but I get an "Overload resolution failed because no accessible
'ToString' can be called with these arguments:" error when it comes
time to check for the image as follows.

<%# checkforimg(DataBinder.Eval(Container.DataItem,
"Imagesubprod1"))%>

When I form the header for the sub as follows:
Public Sub checkforimg(ByVal Imagesubprod1 As String) As string

....i get an "Expected end of statement " error on this line
 
Your argument to your function is of type string - but is that what the
column is in the database? Or is it an image column. As you would imagine,
you can't just turn an image into a string, since an image is binary data.

The 'end of statement' error is because a Sub cannot have a return type,
since Subs don't return anything, only Functions do.

I recommend you try using the code behind model to write your code, since
you will catch these errors before you try to run the page, and the messages
are IDE provides a better environment for figuring out why there is an
error.
 
Marina said:
Your argument to your function is of type string - but is that what the
column is in the database? Or is it an image column. As you would imagine,
you can't just turn an image into a string, since an image is binary data.

The 'end of statement' error is because a Sub cannot have a return type,
since Subs don't return anything, only Functions do.

I recommend you try using the code behind model to write your code, since
you will catch these errors before you try to run the page, and the messages
are IDE provides a better environment for figuring out why there is an
error.

In addition to Marina's comment, I suggest that you turn Options Strict On.
I believe it will catch more of this sort of problem.

Note that "Imagesubprod1" is of type String. What is the return type of
DataBinder.Eval?
 
Back
Top