Saym Pervaiz
Saym Pervaiz

Reputation: 1

Syntax error when using asp.net Repeater in Javascript

I want to use asp.net repeater to get data in a variable in JSON type. I am using Repeater in Javascript. But its giving me syntax error. Here is the code:

<script type="text/javascript">
        var markers = [enter code here
<asp:Repeater runat='server'></asp:Repeater>

        <asp:Repeater ID="rptMarkers" runat="server">
        <ItemTemplate>
                 {
                     "title": '<%# Eval("Name") %>',
                 "lat": '<%# Eval("Latitude") %>',
                 "lng": '<%# Eval("Longitude") %>',
                 "description": '<%# Eval("Description") %>'
             }
    </ItemTemplate>
    <SeparatorTemplate>
        ,
    </SeparatorTemplate>
    </asp:Repeater>
    ];
    </script>

Can anyone help me?

Upvotes: 0

Views: 699

Answers (1)

Paul Walker
Paul Walker

Reputation: 73

It's an old post but this reference helped me figure out the exact same issue. asp repeater syntax error

The idea is to use code-behind to generate your repeater list.

  var markers = [
// start of generated objects from code-behind

        <%=getMarkerObjects() %>

// end of generated objects from code-behind
    ];

Now in your code-behind

    Protected Function getMarkerObjects() As String
    Const indent As String = "    "
    Dim dt = New DataTable
    dt.Columns.AddRange({New DataColumn("Name", GetType(String)), New DataColumn("Latitude", GetType(Double)), New DataColumn("Longitude", GetType(Double)), New DataColumn("Description", GetType(String))})
    dt.Rows.Add({"p1", 32.2217, -110.9264, "p1"})
    dt.Rows.Add({"p2", 31.9556, -110.3067, "p2"})
    Dim ret As String = String.Empty
    For Each r In dt.Rows
        ret &= IIf(ret.Equals(String.Empty), "", indent & "," & vbCrLf) &
            indent & "{" & vbCrLf &
                indent & indent & """title"": '" & r("Name") & "'," & vbCrLf &
                indent & indent & """lat"": '" & r("Latitude") & "'," & vbCrLf &
                indent & indent & """lng"": '" & r("Longitude") & "'," & vbCrLf &
                indent & indent & """description"": '" & r("Description") & "'" & vbCrLf &
            indent & "}" & vbCrLf
    Next
    Return ret
End Function

Upvotes: 1

Related Questions