我的情况是,我需要能够在弹出窗口,iframe,当前窗口(我可以开始工作)中显示来自其他网站的页面。
在我的流程(机会)中需要这个,我需要调用管理某些特定配置的外部应用程序,然后通过WebAPI将其保存回数据库。
目前我有一个方法可以构建我的url并将其传递给PXRedirectToUrlException来进行调用。这是在服务器端完成的,因为我需要根据当前机会提取特定数据以构建正确的URL以便传递。
我发现,如果重定向网址与我的开发服务器位于同一个基本域中,它可以按预期使用WindowMode工作,但是如果重定向网址位于不同的域中,则会始终打开新页面中的新页面。
调试呼叫我看到当它在同一页面上时,呼叫返回一个" Redirect0"但是,在不同的域上,它会调用" Redirect4"
通过重定向例外是否有办法执行此操作(在弹出窗口/ iframe /当前窗口中打开单独域中的页面)?
我想到的另一个选择是,如果没有,那就是拥有一个虚拟页面,调用该页面,然后通过javascript或标准的aspx调用来处理重定向。
任何想法/建议都将不胜感激。
答案 0 :(得分:0)
C#
with sheet2.cells(1,1).resize(99,1)
.formula = "='Sheet1'!A1&"-qwerty"
.value = .value
end with
JAVA SCRIPT
[Serializable]
public class UrlFilter : IBqlTable
{
#region FilterParam
public class filterParam : IBqlField { }
[PXString(50, IsUnicode = true)]
[PXUIField(DisplayName = "Parameter")]
public string FilterParam { get; set; }
#endregion
}
[Serializable]
public class DummyClass : IBqlTable
{
}
public class UrlGraph : PXGraph<UrlGraph>
{
public PXFilter<UrlFilter> Filter;
public PXFilter<DummyClass> DummyRecord;
public PXAction<UrlFilter> Action;
[PXButton(CommitChanges = true)]
protected void action()
{
}
}
表格和智能面板
<script type="text/javascript" language="javascript">
function commandResult(ds, context) {
var paramIdCtrl, smartpanel, param;
for (var key in ds.px_context.px_all) {
if (key.indexOf("_edFilterParam") > 0) {
paramIdCtrl = ds.px_context.px_all[key];
}
if (key.indexOf("_ExternalWebsitePanel") > 0) {
smartpanel = ds.px_context.px_all[key];
}
}
if (paramIdCtrl || smartpanel) {
param = paramIdCtrl.getValue();
var newUrl = 'http://testsite.com/search.shtml?q=' + param;
smartpanel.setPageUrl(newUrl);
smartpanel.repaint();
}
}
</script>