.net后台向前台传值

qq_27083861 2018-01-30 09:50:03
前台定义了<input type="hidden" runat="server" ID="xxx"/>

后台从数据库查找数据,得到数据集 DataSet location

对数据集中的数据进行编辑
StringBuilder sBuilder = new StringBuilder();
foreach (DataRow row in location.Tables[0].Rows)
{
sBuilder.Append(row["longitude"].ToString());
sBuilder.Append(row["latitude"].ToString());
}

后台赋值
xxx.Value = sBuilder.ToString();
TextBox1.Text = xxx.Value;
赋值给TextBox1是为了一会便于比对数据

前台赋值
var points = document.getElementById("xxx").value;

那么到此为止,理论上 TextBox1.Text和 points的值应该是一模一样的 ?

points是用来显示百度地图热力图的, xxx.Value存储的是按格式写好的经纬度坐标集合

然后我运行程序, TextBox1.显示出了正确的值,但是地图不显示,然后我把TextBox1中的内容赋值粘贴给points,等于把points写死,然后运行程序,地图就显示了。那么就问题看来,是不是就是var points = document.getElementById("xxx").value;
这条语句出了问题?大神们帮忙看下问题到底出在哪里

...全文
421 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Greyscarf 2018-02-02
  • 打赏
  • 举报
回复
var points = document.getElementById("<%#xxx.ClientID%>").value; 看下执行的顺序,前台points有没有及时的触发。
qq_27083861 2018-01-30
  • 打赏
  • 举报
回复
按照各位大神的方法试了下,验证出来赋值没问题,看来是百度的前台JAVA语句的问题,感谢各位了
yaotomo 2018-01-30
  • 打赏
  • 举报
回复
查看网页源代码就可以看到渲染后的ClientID了
正怒月神 版主 2018-01-30
  • 打赏
  • 举报
回复
你打开浏览器f12会看见 clientID的。 控件属性也能直接点出来 控件.ClientID
qq_27083861 2018-01-30
  • 打赏
  • 举报
回复
引用 1 楼 yaotomo 的回复:
服务端控件的ID在前台getElementById获取应该用ClientID,不能直接用服务端控件的ID
ClientID是指的哪个啊 <input type="hidden" runat="server" ID="xxx"/>哪个是ClientID
  • 打赏
  • 举报
回复
你第一种方式时console.info(points)看取到的究竟是什么值
正怒月神 版主 2018-01-30
  • 打赏
  • 举报
回复
#1,2都是正解。webform应该使用 ClientID
全栈极简 2018-01-30
  • 打赏
  • 举报
回复
var points = document.getElementById("<%#xxx.ClientID%>").value; 还有就是看下执行的顺序,前台points有没有及时的触发。
yaotomo 2018-01-30
  • 打赏
  • 举报
回复
服务端控件的ID在前台getElementById获取应该用ClientID,不能直接用服务端控件的ID

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧