Как я могу вызвать javascript из VB.NET код позади
У меня есть веб-страница, на которой я отображаю сетку asp, заполненную данными из базы данных sql server, и карту листовок под ней. Я бы хотел, чтобы пользователь щелкнул по элементу в сетке, а затем поставил булавку на карту листовки, показывающую данные, основанные на выбранном элементе.
Проблема, с которой я сталкиваюсь, заключается в том, что функция, которая должна устанавливать pin-код, по-видимому, не вызывается.
То что у меня есть до сих пор это код для моего файла aspx:
<%@ 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>
а потом мой код позади:
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
Что я уже пробовал:
Я пытался поместить сценарий в ярлык, но это тоже не работает. Подобный этому:
Me.lblJava.Text = "<script type='text/javascript'>SetMap(59.334591, 18.063240,Different notfif);</script>"