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