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

Discussion in 'ASP .Net' started by Chumley the Walrus, Jun 14, 2004.

  1. 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
    Chumley the Walrus, Jun 14, 2004
    #1
    1. Advertising

  2. Chumley the Walrus

    Marina Guest

    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.

    "Chumley the Walrus" <> wrote in message
    news:...
    > 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
    Marina, Jun 14, 2004
    #2
    1. Advertising

  3. "Marina" <> wrote in message
    news:...
    > 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?
    --
    John Saunders
    johnwsaundersiii at hotmail

    > "Chumley the Walrus" <> wrote in message
    > news:...
    > > 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

    >
    >
    John Saunders, Jun 15, 2004
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Chumley the Walrus

    Subroutine /helper function error

    Chumley the Walrus, Jun 10, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    321
    bruce barker
    Jun 10, 2004
  2. Nevyn Twyll
    Replies:
    8
    Views:
    1,868
  3. Chumley the Walrus

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

    Chumley the Walrus, Jun 14, 2004, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    99
    Ken Cox [Microsoft MVP]
    Jun 14, 2004
  4. kevin
    Replies:
    1
    Views:
    372
    Kairi Zikpin
    Jul 21, 2006
  5. king
    Replies:
    5
    Views:
    184
Loading...

Share This Page