0
我的应用由包含内容页面的主页面组成。 Masterpage包含JavaScript函数,通过动态选择和扩展节点来操纵树视图。在一个实例中,我试图通过内容页面上的代码隐藏来调用Masterpage上的JavaScript函数,但JavaScript永远不会被调用。我在JavaScript中放置了断点,但他们从未受到影响。从内容页面调用JavaScript不起作用
需要做的事情是,项目被删除后,内容页面会重新加载,同时我需要调用javascript函数。
注意:JavaScript确实可以工作,因为整个系统的动态构建链接确实会触及断点和函数运行。
这里是代码隐藏方法,我自作出调用的javascript:
Protected Overrides Sub OnDelete(ByVal SelectedItems As System.Collections.Specialized.NameValueCollection)
For i As Integer = 0 To SelectedItems.AllKeys.GetLength(0) - 1
Dim strProjectId As String = SelectedItems.AllKeys(i)
Dim objProject As New BSProject(strProjectId)
BSProject.Delete(Val(strProjectId), Page)
' log action
BSActivity.Log(Page.User.SiteUser.intID, "Project Delete", _
"Project """ & objProject.strProjectName & """ of Organization """ & _
Projects.objOrganization.strName & """ was deleted")
Next
Dim script As ClientScriptManager = Page.ClientScript
script.RegisterStartupScript(GetType(Page), "RefreshProject", "parent.refreshNodeForProjects('" & Projects.objOrganization.intID.ToString() & ":company','" & Projects.objLocation.intID.ToString() & ":location" & "');") ' "parent.refreshNodeForProjects('" & Projects.objOrganization.intID.ToString() & ":company','" & Projects.objLocation.intID.ToString() & ":location" & "');", False)
If BSConfig.GetValue("ProjectsRefresh") = "1" Then
Response.Redirect(Request.RawUrl)
End If
End Sub
这里是母版的JavaScript函数:
function refreshNodeForProjects(company, location) {
try {
var tree = $find("<%= radprojecttree.ClientID %>");
if (company != '') {
rootnode = tree.findNodeByValue(company);
rootnode.set_expanded(false);
rootnode.get_treeView().trackChanges();
rootnode.get_nodes().clear();
rootnode.set_expandMode(2);
rootnode.get_treeView().commitChanges();
rootnode.set_selected(true);
rootnode.set_expanded(true);
if (location != '') {
rootnode = GetNodebyValue(rootnode, location);
rootnode.set_expanded(false);
rootnode.get_treeView().trackChanges();
rootnode.get_nodes().clear();
rootnode.set_expandMode(2);
rootnode.get_treeView().commitChanges();
rootnode.set_selected(true);
rootnode.set_expanded(true);
}
scrollToNode(tree, rootnode);
}
}
catch (ex) {
throw ex;
}
}
你为什么使用'parent.'?在主/内容页面中,它们是同一DOM的一部分。 – GalacticCowboy 2013-02-12 17:40:20
我想我正在使用父级,因为这些页面显示在内容页面区域内的iframe中。没有父母,JavaScript不会从内容页面区域内的其他页面运行。我试图在没有父母的情况下运行它。但仍然没有正面结果 – mattgcon 2013-02-12 17:48:17
您是否考虑过每次页面被重新发布时添加一个'window.onload'处理函数来执行该函数?我不知道这是否会对你有用,但它可能会更容易。 – 2013-02-12 17:52:31