0

Мое приложение состоит из главной страницы с страницами контента. Мастер-страница содержит функции 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; 
        } 
       } 
+0

Почему вы используете 'parent.'? На странице мастера/контента они являются частью одного и того же DOM. – GalacticCowboy

+0

Я думаю, что я использую parent, потому что страницы отображаются в iframe в области содержимого страниц. Без родителя javascript не будет запускаться с других страниц в области содержимого страниц. Я попытался запустить его без родителя. но все равно никаких положительных результатов – mattgcon

+0

Рассматривали ли вы просто добавление обработчика 'window.onload' для выполнения этой функции каждый раз, когда страница отправляется назад? Я не знаю, будет ли это работать для вас, но это может быть проще. –

ответ

0

Создан динамический блок зарегистрирован скрипт для решения этой проблемы.

Смежные вопросы