如何将一个变量从asp.net转移到Javascript中的文件
How to transfer a variable from asp.net to a file in Javascript?
我试图创建一个带有来自数据库的经度和纬度标记的地图。与Lat和Lng是在数据库中,我试图将其传递到一个javascript文件。
这段代码来自aspx.cs,获取变量Lat和Lng。我创建了标签lblat和lblLng,只是为了在页面上查看它是否获得了正确的数据。
下面是来自aspx.cs的代码: protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionCarpool"]);
DataRow dr = ExecuteDataSet(("SELECT Lat, Lng FROM Users Where UserID=1").ToString()).Tables[0].Rows[0];
Mapa prd = new Mapa();
prd.Lat = dr["Lat"].ToString();
prd.Lng = dr["Lng"].ToString();
lblLat.Text = prd.Lat;
lblLng.Text = prd.Lng;
conn.Close();
}
在我的Javascript文件中,它使地图出现,但不显示带有Lat和Lng的标记。部分标记是它应该在文件aspx.cs上获得"Lat"answers"Lng"的地方。"position: new google.maps"部分。LatLng(41, -8)"工作良好,但部分"的位置:新的谷歌地图。LatLng("Lat","Lng")"是我想从aspx.cs上的数据库中获取数据的地方。在aspx.cs文件上,它得到了正确的数据,但现在我只是想找到一种方法将该数据传递给Javascript文件上的Lat和Lng。
下面是我的Javascript代码:
函数initialize() {
var latlng = new google.maps.LatLng(41.563059,-8.624268);
var myOptions = {
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: latlng
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var marker = new google.maps.Marker({
//position: new google.maps.LatLng(41, -8),
position: new google.maps.LatLng("Lat", "Lng"),
map:map
});
}
有谁能帮我一下吗?我真的很感激。谢谢!可以放置
<input type=hidden />
控件,用Lat和Lng的值填充。然后用javascript读取
你并不是真的"从ASP.NET向JavaScript发送值"。前者是客户端代码,后者是服务器端代码。将两者直观地分开将使您的web开发生活轻松得多。因此,理想情况下,您可能希望以JavaScript在运行时可以找到的方式向客户端代码发出这些值。
如果你可以成功地设置页面上字段的值,那么你的JavaScript代码就可以访问这些字段的值:
var lat = document.getElementById('someElement').value
我实际上会使用Json的web服务。在javascript文件中,只需使用以下代码。您必须为您的事件传递某种类型的ID,以便它返回正确的lat和lng。这将允许您以javascript文件的形式从服务器获取数据。
function initialize() {
var lat;
var lng;
var ID = 1; //change this to your ID
$.ajax({
type: "POST",
async: false,
contentType: "application/json; charset=utf-8",
url: "MyWebService.asmx/ReturnData",
data: "{'IdOfEvent':'" + ID + "'}",
dataType: "json",
success: function(result) {
//render the new lat & long from the database
var Coordinates = (eval(result.d));
$.each(Coordinates , function(key, value) {
Lat = value.Lat;
Lng = value.Lng;
});
},
error: function (xhr, textStatus, errorThrown) {
alert("Error - " + textStatus);
revertFunc();
}
var latlng = new google.maps.LatLng(41.563059,-8.624268);
var myOptions = {
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: latlng
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(Lat, Lng),
// position: new google.maps.LatLng("Lat", "Lng"),
map:map
});
});
虽然WebService: using Newtonsoft.Json; //download this
[WebMethod]
public string ReturnData(int IdOfEvent)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionCarpool"]);
DataRow dr = ExecuteDataSet(("SELECT Lat, Lng FROM Users Where UserID=" + IdOfEvent).ToString()).Tables[0].Rows[0];
Mapa prd = new Mapa();
List<Mapa> lst = new List<Mapa>();
prd.Lat = dr["Lat"].ToString();
prd.Lng = dr["Lng"].ToString();
lst.Add(prd);
JavaScriptSerializer js = new JavaScriptSerializer();
string strJSON = js.Serialize(lst.ToArray());
return strJSON;
}
看看这是否有效。如果有问题请告诉我。
为什么不改变你的initialize()函数如下:
var latlng = new google.maps.LatLng(myLat,-myLong);
然后在渲染页面时,在
的行中包含一些流JavaScript<script type="text/javascript">
var myLat = 41;
bar myLong = -8;
</script>
确保你的流JavaScript在initialize()函数
在你的aspx页面的某个地方,呈现如下:
<div id="marker" runat="server" style="display:none;">
<div id="marker_lat" runat="server">41</div>
<div id="marker_lng" runat="server">-8</div>
</div>
这应该非常简单。您应该能够从代码隐藏设置文本或html属性。(我做webforms已经很久了,我不确定HtmlControls的属性名称是什么)
下一部分将要求您拥有jquery脚本库,如果它尚未加载到您的页面:
var lat = $('#marker_lat').html();
var lng = $('#marker_lng').html();
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map:map
});
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 将数据从javascript文件导入VB.Net页面
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 从javascript调用asp.net codebehind函数
- jQuery Error adadvisor.net
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- ASP.NET网络摄像头显示
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net,包括iss上的javascript slow
- 选择不在GridView-ASP.NET中激发
- 如何添加CSS&JavaScript进入Windows窗体应用程序C#.net
- 如何将一个变量从asp.net转移到Javascript中的文件
- 服务器.在ASP上转移.NET不工作