I have a webpage that where I display an asp grid filled with data from a sql server database and a Leaflet map below it. What I would like to do is have the user click on an item in the grid, then put a pin on the Leaflet map showing data based on the chosen item.
The problem that I am having is that the function that should be setting the pin does not appear to be called.
What I have so far is this code for my aspx file:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="VB.aspx.vb" Inherits="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Leaflet Web Map</title>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<style>
#map {
width: 100%;
height:500px;
}
</style>
</head>
<body>
<form id="frmACDC" runat="server">
<div style="text-align: center;">
<asp:Label ID="ACDCHdr" runat="server" Font-Names="Georgia,Times New Roman"
ForeColor="Blue" Font-Size="36pt">ACDC</asp:Label>
<hr/>
</div>
<div>
<tr>
<td align="center" style="padding: 50px">
<div style="width: 100%; text-align=center;">
<asp:GridView ID="gvF25" runat="server" AllowPaging="True"
AutoGenerateColumns="False" PageSize="12" AllowSorting="True" CellPadding="2"
CellSpacing="2" HorizontalAlign="center" Width="50%">
<Columns>
<asp:ButtonField ButtonType="Link" DataTextField="Reference_Number" CommandName="SelectRef" HeaderText="Reference Number" ItemStyle-Width="19%" />
<asp:BoundField DataField="From_PS" HeaderText="State Code" ReadOnly="true" ItemStyle-Width="9%"/>
</Columns>
<HeaderStyle BackColor="#E6E6FA" Font-Bold="True" />
</asp:GridView>
<HeaderStyle BackColor="#E6E6FA" Font-Bold="True" />
</asp:GridView>
<asp:Label ID="lblJava" runat="server" ForeColor="Blue" Font-Bold="true"></asp:Label>
</td>
</tr>
</div>
<div id="map" ></div>
<script language=javascript>
var map = L.map('map',{zoom: 15});
map.setView(new L.LatLng(59.334591, 18.063240),5);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var marker = L.marker([59.334591, 18.063240]).addTo(map).bindPopup("Here").openPopup();
function SetMap(Lat, Long, strText) {
map.setView(new L.LatLng(Lat, Long),5);
marker = L.marker([Lat, Long]).addTo(map).bindPopup(strText).openPopup();
}
</script>
</form>
</body>
</html>
and then my code behind:
Imports System.Data.SqlClient
Imports System.Data
Partial Class VB
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
gvF25.DataSource = GetData("select Reference_number, From_PS from F25_master")
gvF25.DataBind()
End If
End Sub
Private Shared Function GetData(query As String) As DataTable
Dim strCON = "Server=MyServer;Database=MyDB;Uid=xxx;Pwd=xxx;MultipleActiveResultSets=true"
Using con As New SqlConnection(strCON)
Using cmd As New SqlCommand()
cmd.CommandText = query
Using sda As New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As New DataSet()
Dim dt As New DataTable()
sda.Fill(dt)
Return dt
End Using
End Using
End Using
End Using
End Function
Public Sub gvF25_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles gvF25.RowCommand
Dim intRow As Integer
Dim ex As exception
Dim strMessage As String
Dim selRow As GridViewRow
Dim cellText As TableCell
Dim btn As LinkButton
Dim strText as string
Try
If e.CommandName = "SelectRef" Then
introw = Convert.ToInt32(e.CommandArgument)
selRow = gvF25.rows(intRow)
btn = selRow.Cells(0).Controls(0)
cellText = selRow.Cells(1)
if introw = 0 then
System.Web.UI.ScriptManager.RegisterStartupScript(Me, [GetType](), "check_Javascript", "SetMap(59.334591, 18.063240,First Text);", True)
else
System.Web.UI.ScriptManager.RegisterStartupScript(Me, [GetType](), "check_Javascript", "SetMap(59.334591, 18.063240,Different Text);", True)
end if
End If
Catch ex
'Me.lblerror.text = "An error has occured. Please have TK admin review the error log."
End Try
End Sub
End Class
What I have tried:
I have tried putting the script into a label but that doesn't work either. Like this:
Me.lblJava.Text = "<script type='text/javascript'>SetMap(59.334591, 18.063240,Different notfif);</script>"