Reputation: 1
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
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