保留回发之间的dialogArguments

时间:2012-11-22 17:11:47

标签: tridion tridion-2011

我目前正在创建一个通过自定义网址功能访问的网页。每当我的页面回传到服务器时,我都会丢失window.dialogArguments属性,因此无法访问getFields()container.deleteField()等。

有什么方法吗?

我的第一个想法是通过XMLHttpRequest调用与服务器进行所有通信,这样可以摆脱回发后问题,但问题是代码(来自Tridion 5.3)在很大程度上依赖于服务器端逻辑和改变它将是一项重大工作。 (5.3似乎使用window.returnValue而不是dialogArguments

我的第二个想法是也许我可以在window.opener中使用一些值,但我无法找到我需要的属性/功能。

2 个答案:

答案 0 :(得分:4)

您可以在单独的iframe中进行回发。这将使主窗口保持活动状态,从而使window.dialogArguments可以访问您的代码。

据我所知,window.opener应该能够在任何回发后继续存在。所以我不确定你在那里寻找什么。

答案 1 :(得分:1)

如果您使用的是ASP.NET 3.5或更高版本,则还可以将控件简单地包装在UpdatePanel中。

然后它将自动在异步客户端请求中进行回发,因此不会重新加载窗口。