Mar 05, 2014, 11:11 PM
[CLOSED] Open External Website in Tab Error in IE with parentAutoLoadControl
I've been having trouble in IE with opening a new tab with the loader, it appears to be working in Chrome. I am hoping you might have solution to this issue. The dynamic code is generating the following error:
Thanks for your assistance
Russ
And stopping on the following code block within the dynamic code:
Test routine
Home Controller
Thanks for your assistance
Russ
Exception was thrown at line 2491, column 13 in http://localhost:53440/extnet/extnet...xt.axd?v=14713
0x80070005 - JavaScript runtime error: Access is denied.
If there is a handler for this exception, the program may be safely continued.
0x80070005 - JavaScript runtime error: Access is denied.
If there is a handler for this exception, the program may be safely continued.
beforeIFrameLoad: function () {
try {
this.target.iframe.dom.contentWindow.parentAutoLoadControl = this.target;
} catch (e) { }
},
Test routine
Home Controller
public StoreResult GetTreeCategories(string node)
{
Node child = new Node();
child.Text = "sites";
child.Leaf = true;
child.NodeID = "sitesID";
NodeCollection nodes = new NodeCollection(false);
Node root = new Node();
root.Text = "Organization";
root.AllowDrag = false;
root.Expanded = true;
root.Children.Add(child);
nodes.Add(root);
return this.Store(nodes);
}
public ActionResult GetPasswordByOrgTreeKey(string orgTreeKey)
{
if (!string.IsNullOrEmpty(orgTreeKey))
{
pwdInformation info = new pwdInformation();
info.methodKey = 1;
info.method = "Website";
info.logonName = "";
info.logonPwd = "";
info.url = "http://www.ext.net/";
Store storePwd = this.GetCmp<Store>("storePassword");
storePwd.LoadRawData(info);
}
return this.Direct();
}
Index.cshtml@(
X.Store()
.ID("storePassword")
.SyncUrl(Url.Action("StorePasswordSync", "Home"))
.Reader(r => r.Add(X.JsonReader()))
.Writer(w => w.Add(X.JsonWriter().Encode(true).Root("data")))
.AutoDataBind(true)
.ShowWarningOnFailure(false)
.Data(Model)
.Listeners(l => { l.Exception.Fn = "onStoreException"; })
.Model(
X.Model().Name("modelPassword").IDProperty("passwordKey")
.Fields(
new ModelField("passwordKey", ModelFieldType.Int) { Mapping = "passwordKey" },
new ModelField("orgTreeKey", ModelFieldType.Int) { Mapping = "orgTreeKey" },
new ModelField("userKey", ModelFieldType.Int) { Mapping = "userKey" },
new ModelField("categoryKey", ModelFieldType.Int) { Mapping = "categoryKey" },
new ModelField("logonName", ModelFieldType.String) { Mapping = "logonName" },
new ModelField("logonPwd", ModelFieldType.String) { Mapping = "logonPwd" },
new ModelField("url", ModelFieldType.String) { Mapping = "url" },
new ModelField("comments", ModelFieldType.String) { Mapping = "comments" },
new ModelField("methodKey", ModelFieldType.String) { Mapping = "methodKey" },
new ModelField("memberNo", ModelFieldType.String) { Mapping = "memberNo" },
new ModelField("emailUsed", ModelFieldType.String) { Mapping = "emailUsed" },
new ModelField("techsupport", ModelFieldType.String) { Mapping = "techsupport" },
new ModelField("productNo", ModelFieldType.String) { Mapping = "productNo" },
new ModelField("licenseNo", ModelFieldType.String) { Mapping = "licenseNo" },
new ModelField("user", ModelFieldType.String) { Mapping = "user" },
new ModelField("method", ModelFieldType.String) { Mapping = "method" },
new ModelField("category", ModelFieldType.String) { Mapping = "category" },
new ModelField("parentKey", ModelFieldType.String) { Mapping = "parentKey" },
new ModelField("passwordparent", ModelFieldType.String) { Mapping = "passwordParent" },
new ModelField("vpnname", ModelFieldType.String) { Mapping = "vpnName" }
)
)
)
@(
X.Viewport()
.Layout(LayoutType.Border)
.Items(
X.Panel()
.ID("panelNorth")
.Region(Region.North)
.Layout(LayoutType.HBox)
.Split(false)
.Height(50)
.BodyPadding(5)
.Collapsible(false)
.Items(
X.TreePanel()
.ID("treeOrganization")
.Title("Organization")
.Region(Region.West)
.MinWidth(100)
.MaxWidth(500)
.Width(350)
.BodyPadding(5)
.Split(true)
.Collapsible(true)
.TitleCollapse(true)
.UseArrows(true)
.RootVisible(false)
.SingleExpand(false)
.MultiSelect(false)
.Mode(TreePanelMode.Remote)
.RemoteEditUrl(Url.Action("OrgTreeEdit"))
.RemoteRemoveUrl(Url.Action("OrgTreeRemove"))
.RemoteAppendUrl(Url.Action("OrgTreeAppend"))
.RemoteInsertUrl(Url.Action("OrgTreeInsert"))
.RemoteMoveUrl(Url.Action("OrgTreeMove"))
.Editor(X.TextField())
.Plugins(X.CellEditing())
.View(X.TreeView().Plugins(X.TreeViewDragDrop().AllowLeafDrop(true).ContainerScroll(true)))
.Tools(
X.Tool().Type(ToolType.Expand).ToolTip("Expand all").Handler("this.up('treepanel').expandAll();"),
X.Tool().Type(ToolType.Collapse).TooltipConfig(tt => { tt.Width = 70; tt.Text = "Collapse All"; }).Handler("this.up('treepanel').collapseAll();"),
X.Tool().Type(ToolType.Refresh).ToolTip("Refresh").Handler("refreshTree(#{treePatientPages});")
)
.TopBar(
X.Toolbar()
.ID("tbarTree")
.Items(
X.ToolbarTextItem().Text("Filter:"),
X.ToolbarSpacer(),
X.TriggerField()
.EnableKeyEvents(true)
.Triggers(X.FieldTrigger().Icon(TriggerIcon.Clear))
.Listeners(l => { l.KeyUp.Fn = "filterTree"; l.KeyUp.Buffer = 250; l.TriggerClick.Fn = "clearFilter"; })
)
)
.Store(
X.TreeStore()
.Proxy(X.AjaxProxy().Url(Url.Action("GetTreeCategories")))
.Root(X.Node().NodeID("Root"))
)
.DirectEvents(de =>
{
de.ItemClick.Url = Url.Action("GetPasswordByOrgTreeKey", "Home");
de.ItemClick.ExtraParams.Add(new Parameter("orgTreeKey", "record.data.id", ParameterMode.Raw));
})
.Listeners(l =>
{
l.ItemContextMenu.Fn = "showMenu";
l.ItemContextMenu.StopEvent = true;
l.RemoteActionRefusal.Handler = "Ext.Msg.alert('Action refusal', e.message);";
l.ItemClick.Handler = "Ext.getCmp('formPassword').getForm().reset();";
}),
X.FormPanel()
.ID("formPassword")
.Title("Passwords")
.Region(Region.East)
.MinWidth(100)
.MaxWidth(600)
.Width(500)
.Collapsible(true)
.Split(true)
.Collapsed(false)
.Layout(LayoutType.Border)
.Items(
X.GridPanel()
.ID("infomationGrid")
.Title("Defined Passwords")
.Region(Region.Center)
.Collapsible(true)
.Split(true)
.StoreID("storePassword")
.ColumnModel(
X.Column().ID("methodColumn").Text("Method").DataIndex("method").Flex(1),
X.Column().ID("categoryColumn").Text("Category").DataIndex("category").Flex(1).Hidden(true),
X.Column().ID("parentColumn").Text("Parent").DataIndex("passwordparent").Flex(1).Hidden(true),
X.Column().ID("urlSiteColumn").Text("Url").DataIndex("url"),
X.CommandColumn().Width(60)
.Commands(
X.GridCommand().CommandName("Launch").Icon(Icon.ComputerGo).StandOut(true).ToolTip(tt => tt.Text = "Launch")
)
.Listeners(l => l.Command.Handler = "handleLaunch(command, record)")
.PrepareToolbar("prepareLaunchButtons")
)
),
X.TabPanel()
.ID("mainTabPanel")
.Region(Region.Center)
)
)
Script
var handleLaunch = function (command, record) {
if (command === 'Launch' && record.data.methodKey === '1') {
addTab(App.mainTabPanel, 'tab' + record.data.passwordKey, record.data.url);
} else {
App.direct.LaunchFromURL(command, record.data.methodKey, record.data.url, record.data.passwordKey, record.data.parentKey);
}
};
var addTab = function (tabPanel, id, url) {
Ext.Msg.notify('Launch', id + '|' + url);
var tab = tabPanel.getComponent(id);
if (!tab) {
tab = tabPanel.add({
id: id,
title: url,
closable: true,
loader: {
url: url,
renderer: "frame",
loadMask: {
showMask: true,
msg: "Loading " + url + "..."
}
}
});
}
tabPanel.setActiveTab(tab);
};
Last edited by Daniil; Mar 11, 2014 at 6:41 AM.
Reason: [CLOSED]