Мое приложение состоит из главной страницы с страницами контента. Мастер-страница содержит функции javascript для управления древовидным представлением путем динамического выбора и расширения узлов. В одном случае я пытаюсь вызвать функцию 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 функция на MasterPage:
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
Я думаю, что я использую parent, потому что страницы отображаются в iframe в области содержимого страниц. Без родителя javascript не будет запускаться с других страниц в области содержимого страниц. Я попытался запустить его без родителя. но все равно никаких положительных результатов – mattgcon
Рассматривали ли вы просто добавление обработчика 'window.onload' для выполнения этой функции каждый раз, когда страница отправляется назад? Я не знаю, будет ли это работать для вас, но это может быть проще. –