FineUI 官方论坛

标题: 【已解决】如何在IFrame中修改外部窗体的标题? [打印本页]

作者: 蒙奇.D.二毛    时间: 2013-4-27 18:33
标题: 【已解决】如何在IFrame中修改外部窗体的标题?
弹出的子窗体有一个按钮,点击按钮,在后台事件里如何改变弹出窗体的标题?

下面的代码不行啊?
protected void tbCode_Click(object sender, EventArgs e)
{

      this.Title = “新的标题”;
}

作者: sanshi    时间: 2013-4-27 19:34
windowInstance.Title
作者: 蒙奇.D.二毛    时间: 2013-4-28 09:26
是“弹出的子窗体有一个按钮”,即自己改变自己窗体的标题,怎么获得呢?
作者: 蒙奇.D.二毛    时间: 2013-4-28 11:48
[attach]2252[/attach]

点击保存,改变标题,请问有什么方法改变吗?
作者: 蒙奇.D.二毛    时间: 2013-4-28 17:50
请问,
“windowInstance.Title”,windowInstance我在父页面可以获得,但我是弹出窗体本身,怎么获得?
我想通过JS来改变,查看了源码是:<span class="x-window-header-text" id="ext-gen262">编辑其它</span>
那么难道只有通过Ext.getDom('ext-gen262')....来设置了吗?
作者: sanshi    时间: 2013-4-28 19:16
蒙奇.D.二毛 发表于 2013-4-28 11:48
点击保存,改变标题,请问有什么方法改变吗?

保存按钮是在一个IFrame中?
作者: 飘移    时间: 2013-4-28 23:26
ActiveWindow行不?
作者: 蒙奇.D.二毛    时间: 2013-5-2 10:02
1.IFrame中?
2. ActiveWindow肯定不行的,.出来根本没有标题的设置属性。

可能是我没描述清楚问题,就如同官方实例:http://fineui.com/demo/#/demo/grid/grid_iframe.aspx
[attach]2260[/attach]
作者: sanshi    时间: 2013-5-3 09:25
蒙奇.D.二毛 发表于 2013-5-2 10:02
1.IFrame中?
2. ActiveWindow肯定不行的,.出来根本没有标题的设置属性。

这个需要用JS实现,因为你的按钮是在IFrame中,所以和外部的Window对象不在一个页面中,你需要先找到上层的Window组件。

试下下面代码:
  1. X.wnd.getActiveWindow()[0].setTitle('你需要的Window标题');
复制代码



你也可以在C#代码中通过PageContext.RegisterStartupScript来注册这段脚本。
作者: 蒙奇.D.二毛    时间: 2013-5-3 11:57
按照您说的做了
protected void tbCode_Click(object sender, EventArgs e)
{

      PageContext.RegisterStartupScript("X.wnd.getActiveWindow()[0].setTitle('你需要的Window标题');");
}

但没效果
作者: sanshi    时间: 2013-5-3 14:09
蒙奇.D.二毛 发表于 2013-5-3 11:57
按照您说的做了
protected void tbCode_Click(object sender, EventArgs e)
{

上面的代码有点问题,正确的写法是:
  1. PageContext.RegisterStartupScript("(function(){var
  2. activeObj=X.wnd.getActiveWindow();var active=activeObj[0];var
  3. activeWindow=activeObj[1];var
  4. targetWindow=X.util.getTargetWindow(active['box_property_target']);if(targetWindow!==activeWindow){active=targetWindow.X[active['box_property_guid']];}active.setTitle('你想要设置的Window标题!');})();");
复制代码

JS格式化后的代码如下:
  1. (function () {
  2.     var activeObj = X.wnd.getActiveWindow();
  3.     var active = activeObj[0];
  4.     var activeWindow = activeObj[1];
  5.     var targetWindow = X.util.getTargetWindow(active['box_property_target']);
  6.     if (targetWindow !== activeWindow) {
  7.         active = targetWindow.X[active['box_property_guid']];
  8.     }
  9.     active.setTitle('你想要设置的Window标题!');
  10. })();
复制代码


这个地方稍微有点麻烦,因为FineUI中Window窗体可以在本页面弹出,也可以在父页面或者顶层的页面弹出。

作者: 蒙奇.D.二毛    时间: 2013-5-6 15:40
中间有几句语法不懂,但十分感谢,实现了的!
作者: 舞柯庶    时间: 2013-6-4 18:39
{:soso_e179:}




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