javascript - 在代码隐藏(c#)中多次执行javascript函数

标签 javascript c# jquery

我有一个数据表,对于每一行,我需要执行一个 javascript 函数(相同的 javascript 函数,但具有不同的值)。

对于每一行,它执行一个 JavaScript 函数,并将结果返回到后面的代码(通过 Web 方法)。

但是,在我的实际代码中,该函数只执行一次(表的第一行)。

我有这个: c#

 string strScript = "";
foreach (DataRow row in dtLodgings.Rows)
{
    strScript = strScript + "\n" + "GetInfoGMaps('" + row["Name"].ToString() + "'," + row["Latitude"].ToString().Replace(",", ".") + "," + row["Longitude"].ToString().Replace(",", ".")+ ");";
}
  strScript = strScript.Replace("'", "\'");
  ClientScript.RegisterStartupScript(GetType(), "GetInfoGMaps", strScript, true);

JavaScript

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places"></script>
var map, service;
function GetInfoGMaps(name, latitude, longitude) {
    var loc= null;
    if (latitude != "" && longitude != "") {
        loc  = new google.maps.LatLng(latitude, longitude);
    }

    map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: loc,
        zoom: 15
    });

    service = new google.maps.places.PlacesService(map);

    var request = {location: loc, radius: 50000, keyword: name};

    service.radarSearch(request, callback); // i got the data and i sent to c# trought ajax
}

c#

[WebMethod]
public static void GetInfoGMaps(InfoMaps lodg)
{
   if (lodg != null)
   {
      // the data is saved in database
   }
}

我尝试在控制台(chrome Web 浏览器)中执行 strString,但我得到未定义,我不明白为什么。似乎当我运行 RadarSearch 函数时给出了未定义。

GetInfoGMaps('Mak Albania Resort Durres',41.2314605712891,19.5132293701172);
GetInfoGMaps('Mak Albania Resort Durres',41.2314605712891,19.5132293701172);
GetInfoGMaps('Mak Albania Resort Durres',41.2314605712891,19.5132293701172);

有人可以帮助我吗?

谢谢

最佳答案

根据 documentation ,每个启动脚本都由其 key 和类型唯一标识。具有相同键和类型的脚本被视为重复。像这样为每个键添加唯一值..

int i = 0;
foreach (DataRow row in dtTable.Rows) {
    ClientScript.RegisterStartupScript(GetType(), "GetInfoGMaps" + i, "GetInfoGMaps('" + row["Name"].ToString() + "'," + row["Latitude"].ToString().Replace(",", ".") + "," + row["Longitude"].ToString().Replace(",", ".")");", true);
    i++;
}

关于javascript - 在代码隐藏(c#)中多次执行javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29844905/

相关文章:

javascript - ReactJS-Java 脚本 : Image is not properly showing inside a <div>

javascript - 为给定对象打印原型(prototype)链的函数

c# - 在 c# 中使用 var 作为 "shortcuts"是否被认为是被接受的?

jquery - 无法根据调整 div 的大小来调整 textarea 的大小

javascript - jQuery/JavaScript - 字符串替换

javascript - 带有 knockoutjs 绑定(bind)的 bootstrap-select 从 4 个选项中选择 2 个

javascript - 如何正确 pull create-react-app 存储库并构建(当前有错误)- (Git)

c# - Json.NET 即使使用默认设置也将枚举序列化为字符串

c# - 设置 ASP :ContentPlaceHolder Content programmatically

javascript - document.onkeyup 移植到 jQuery