【问题标题】:Google maps api in updatepanel - HTML in InfoWindow do not show up on refreshing update panel更新面板中的 Google 地图 api - InfoWindow 中的 HTML 不会显示在刷新更新面板上
【发布时间】:2014-09-10 14:37:21
【问题描述】:

我在update panel 中有一个 Google 地图画布。每次更新面板刷新时,地图都会刷新其内容(位置)。我需要在InfoWindow 中以表格格式显示一些内容。
问题是,如果我在 InfoWindow 中使用html tags,它只会在应用程序加载时第一次显示,当我刷新更新面板时,应用程序会冻结。但是,如果我在 InfoWindow 中使用纯字符串,则内容每次都会正确显示。
这是 C# 中的代码,我在其中生成 InfoWindow 的表格内容。

sb.Append("<div id=\"content\"><table>");
foreach (DataRow dr in dt.Rows)
{
    sb.AppendLine("<tr><td>" + dr[0].ToString() + "</td></tr>");
}
sb.Append("</table></div>");

更新更新面板后这不起作用。但是下面的代码有效:

StringBuilder sb = new StringBuilder();
foreach (DataRow dr in dt.Rows)
{
    sb.AppendLine(dr[0].ToString());
} 

我将生成的字符串放入 hiddenfield 并在 js 文件中使用它,如下所示:

var contentString = document.getElementById('InfoWindowString').value; 
var infowindow = new google.maps.InfoWindow({
    content: contentString
})  

谁能告诉我哪里出错了。

【问题讨论】:

  • dr[0].ToString() 中是否有一些无效的 HTML 会导致表格标签出现问题?
  • @duncan 不。我使用 - sb.AppendLine("" + "test" + "");即使那样它也没有用

标签: c# javascript asp.net google-maps google-maps-api-3


【解决方案1】:

我在浏览器中查看了Javascript控制台,发现错误信息A potentially dangerous Request.Form value was detected from the client
使用以下 Stackoverflow 链接 - thisthis 我发现 validateRequest 将在 Page 指令中设置为 falsevalidateRequest="false"

希望这可以帮助其他面临同样问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多