FineUI 官方论坛

标题: 向父页中动态添加Tab页的问题 [打印本页]

作者: 快乐的猪    时间: 2012-8-1 04:57
标题: 向父页中动态添加Tab页的问题
本帖最后由 快乐的猪 于 2012-8-1 04:58 编辑

我用的是ExtAspNet3.1.7,浏览器IE9。我按照论坛里面的方法向父页面动态添加tab页,但是在添加完tab过了一会儿页面就会自动跳转,不知道是什么原因。代码如下
  1. ExtAspNet.PageContext.RegisterStartupScript(
  2.                                "if (top == window) { window.location.href = "../Main.aspx#/UserWork/InvestigateInput.aspx"; }" +
  3.                                "parent.window.X('RegionPanel1_mainRegion_mainTabStrip').addTab({" +
  4.                                                        "id:"dynamic_added_tab1304", " +
  5.                                                        "url:"/UserWork/InvestigateInput.aspx", " +
  6.                                                        "title:"调查信息录入", closable:true});"
  7.                 );
复制代码

通过跟踪代码,发现好像有个什么延时机制,具体的原因不明,希望各位高手能给解决下

作者: 快乐的猪    时间: 2012-8-6 08:53
看来这个问题没有人遇到了,那请问在子页中如何实现跳转的时候可以修改tab的标题和地址栏的URl啊
作者: 快乐的猪    时间: 2012-8-8 03:41
为什么没有人来解决一下呢?自己顶吧
作者: 快乐的猪    时间: 2012-8-13 17:16
为什么没有人来给我解决一下嘞?我今天又试了下3.1.8,这个版本倒是可以实现,但是Grid的e.Values[index]取值有“<span> </span>”,如果全部改过来工作量太大了,没办法还得用3.1.7版本。我现在可以实现向父页面动态添加tab页,但是在添加完tab过了一小会儿(几秒钟)页面就会自动跳转了,请大家帮帮忙给解决一下吧
作者: support    时间: 2012-8-13 17:43
快乐的猪 发表于 2012-8-13 17:16
为什么没有人来给我解决一下嘞?我今天又试了下3.1.8,这个版本倒是可以实现,但是Grid的e.Values取值有“  ...

写个例子吧,这样描述看不懂...
作者: 快乐的猪    时间: 2012-8-13 19:30
support 发表于 2012-8-13 17:43
写个例子吧,这样描述看不懂...

这是我做的一个例子,麻烦您给看一下吧[attach]926[/attach]

作者: 快乐的猪    时间: 2012-8-13 19:32
快乐的猪 发表于 2012-8-13 19:30
这是我做的一个例子,麻烦您给看一下吧

目标页面在系统报表——>“开票查询"里面,点击页面里面的那个按钮就可以了
作者: sanshi    时间: 2012-8-13 21:26
帅哥,你的代码存在两个问题:
1. 在 js/Main.js 中:
  1. mainTabStrip.on('tabchange', function (tabStrip, tab) {
  2.         if (tab.url) {
  3.             window.location.href = '#' + tab.url;
  4.         } else {
  5.             window.location.href = '#';
  6.         }

  7.     });
复制代码

应该改为:
  1. mainTabStrip.on('tabchange', function (tabStrip, tab) {
  2.         if (tab.url) {
  3.             window.location.hash = '#' + tab.url;
  4.         } else {
  5.             window.location.hash = '#';
  6.         }

  7.     });
复制代码

这也是导致你说的页面刷新的根本原因!!!

建议你参考最新ExtAspNet代码(会出现在v3.1.9中),已经加入Accordion+Tree的菜单,并且内部封装了很多JS逻辑。


2. AppFrame/WebReport.aspx 中的代码页有点问题,如果你站点放在虚拟目录下的话(类似http://localhost:1340/WebSite/default.aspx),那么这里的路径就不对:
  1. ExtAspNet.PageContext.RegisterStartupScript(
  2.                        "var node = {" +
  3.                             "attributes: {" +
  4.                             "    href: "/AppFrame/Default.aspx" + """ +
  5.                             "}," +
  6.                             "reload: "ok"," +
  7.                             "text: "调查信息录入"," +
  8.                             "id: "1304"};" +
  9.                        "parent.addCustomTab.apply(parent, [node]);"
  10.                     );
复制代码

应该用客户端相对目录:"./AppFrame/Default.aspx"
或者最好这样:Page.ResolveUrl("~/AppFrame/Default.aspx")




作者: sanshi    时间: 2012-8-13 21:59
快乐的猪 发表于 2012-8-13 17:16
为什么没有人来给我解决一下嘞?我今天又试了下3.1.8,这个版本倒是可以实现,但是Grid的e.Values取值有“  ...

至于你说的“为什么没有人来给我解决一下嘞?我今天又试了下3.1.8,这个版本倒是可以实现,但是Grid的e.Values[index]取值有“<span> </span>”,如果全部改过来工作量太大了,”这个情况,在3.1.9中会改回来。

[attach]927[/attach]

作者: 快乐的猪    时间: 2012-8-14 06:35
sanshi 发表于 2012-8-13 21:59
至于你说的“为什么没有人来给我解决一下嘞?我今天又试了下3.1.8,这个版本倒是可以实现,但是Grid的e.V ...

非常感谢,以前在搞js的时候从来没有注意过location.hash和location.href之间的区别,而我在测试的时候用IE9和谷歌也都不知道如何进行跟踪,所以一直找不出原因,今天我专门又查了下location.hash的用法,受教了,再次表示感谢




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4