FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 9951|回复: 6
打印 上一主题 下一主题

如何在Grid表格的行单击事件的后台代码里调用前端JS代码

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-22 22:02:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 守护、天使 于 2013-9-22 22:06 编辑

有两个问题。
主要的是:如何在Grid表格的行单击事件的后台代码里调用前端JS代码
次要的是:如何在content Panel中如何加载百度地图


此图下方是一个表格,表格具有行单击事件,在行单击事件里我需要利用表格主键查询数据库获得经纬度,然后传值给地图。按照我现在的想法是调用前端JS函数.
关于百度地图api
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  6. <style type="text/css">
  7. body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
  8. </style>
  9. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
  10. <title>地图平移</title>
  11. </head>
  12. <body>
  13. <div id="allmap"></div>
  14. </body>
  15. </html>
  16. <script type="text/javascript">

  17. // 百度地图API功能
  18. var map = new BMap.Map("allmap"); // 创建Map实例
  19. map.centerAndZoom(new BMap.Point(116.4035,39.915),8); //初始化时,即可设置中心点和地图缩放级别。

  20. setTimeout(function(){
  21. map.panTo(new BMap.Point(113.262232,23.154345)); //两秒后移动到广州
  22. }, 1500);
  23. </script>
复制代码
我的想法就是通过后台事件代码中获得经纬度,传值,调用前台JS函数(类似两秒移动到广州),最终目的是将地图移动到指定位置。
事件代码中该如何操作?

2.次要问题:如何在content Panel中如何加载百度地图
目前使用的是iframe:代码如下:
  1. <ext:Region ID="mainRegion" ShowHeader="false" Layout="Fit" Margins="0 0 0 0" Position="Center" runat="server">
  2. <Toolbars>
  3. <ext:Toolbar ID="Toolbar1" Position="Top" runat="server" Height="25px" CssClass="toolbar">
  4. <Items>
  5. <ext:Label ID="ToolLabel" Text="动态管理>基站状况-地图表示" runat="server" CssClass="label">
  6. </ext:Label>
  7. </Items>
  8. </ext:Toolbar>
  9. </Toolbars>
  10. <Items>
  11. <ext:ContentPanel ID="ContentPanel2" runat="server" EnableBackgroundColor="true"
  12. ShowBorder="false" ShowHeader="false" Title="ContentPanel" BoxConfigPosition="Center">
  13. <iframe id="iframe1" name="iframe1" enableviewstate="true" scrolling="auto" frameborder="0" src="map.aspx"></iframe>
  14. <%--<div style="height:700px; width:1250px; padding:0; margin:0;" id="allmap"></div> --%>
  15. </ext:ContentPanel>
  16. </Items>
  17. </ext:Region>
复制代码
这段代码我们可以看到,用的是iframe。由于用iframe传值比较麻烦。但是直接用div的话,不写高度和宽度,content panel中无法显示地图。写高度和宽度又不能写定值,为什么呢?框架的缩放。
现在就想类似在百度API里的那般,让地图充满content panel,但是又不用iframe,那么该如何处理。
希望大神给予解答,实在是比较急。谢谢





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-9-23 17:17:11 | 只看该作者
主要的是:如何在Grid表格的行单击事件的后台代码里调用前端JS代码
===
在C#代码中直接调用PageContext.RegisterStartupScript 即可执行前端JS代码

次要的是:如何在content Panel中如何加载百度地图
===
最好放在IFrame中,方便隔离代码,减少问题
板凳
 楼主| 发表于 2013-9-23 18:12:17 | 只看该作者
sanshi 发表于 2013-9-23 17:17
主要的是:如何在Grid表格的行单击事件的后台代码里调用前端JS代码
===
在C#代码中直接调用PageContext.Reg ...

关于次要的只能如此了。
那么主要的还是很有问题的。
首先怎么调用iframe中的JS函数呢?
其次如何传值(经纬度)给那个被调用函数?
地板
发表于 2013-9-24 09:45:56 | 只看该作者
守护、天使 发表于 2013-9-23 18:12
关于次要的只能如此了。
那么主要的还是很有问题的。
首先怎么调用iframe中的JS函数呢?

这个就不属于FineUI的范畴了。

调用IFrame中的函数很简单,只要两个页面属于同一个域名下,先找到IFrame的window对象,网上搜索一下
5#
 楼主| 发表于 2013-9-25 22:05:20 | 只看该作者
本帖最后由 守护、天使 于 2013-9-25 22:09 编辑
sanshi 发表于 2013-9-24 09:45
这个就属于FineUI的范畴了。

调用IFrame中的函数很简单,只要两个页面属于同一个域名下,先找到IFrame的 ...


这个问题我解决了哦。。。。。
现在有一个新的想法。。。
就是表格绑定了数据源,但是数据库里的数据会改变,能不能做到网页不刷新而让表格的实时更新呢?
简而言之就是类似表格部分局部刷新,并将数据库里的数据在页面实时显示出来呢?(完全没思路啊)
6#
 楼主| 发表于 2013-9-26 19:55:31 | 只看该作者
守护、天使 发表于 2013-9-25 22:05
这个问题我解决了哦。。。。。
现在有一个新的想法。。。
就是表格绑定了数据源,但是数据库里的数据会改 ...

已解决,谢谢
7#
发表于 2013-9-27 19:25:55 | 只看该作者
sanshi 发表于 2013-9-24 09:45
这个就不属于FineUI的范畴了。

调用IFrame中的函数很简单,只要两个页面属于同一个域名下,先找到IFrame ...

你好,我也遇到类似的问题。  我再后台写的
    PageContext.RegisterStartupScript("return resetEditor()");
但是前台函数没有执行?请问,这是怎么回事?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-29 06:14 , Processed in 0.048189 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表