2010-10-27 3 views
0

Я использую управление древовидной структурой. Я бушует дерево динамически. иногда дерево становится больше, а нижняя полоса прокрутки должна видеть все дерево. Пользователь может выбрать узел из дерева. если выбран один узел, я изменяю цвет узла со стороны сервера.Выбор узла treeview после обратной передачи - asp.net

моя проблема в том, что если пользователь выбрал узел, который является дном в дереве (означает, что пользователь использовал прокрутку вниз, чтобы увидеть этот узел), после обратной передачи он показывает верхнюю часть дерева. Чтобы увидеть выбранный узел пользователю необходимо использовать панель прокрутки вниз.

Мне нужно показать выбранный узел после обратной передачи. Как я могу это сделать?

Я использую C# и ASP.NET

ответ

0

Вы можете использовать панель обновления для решения этой проблемы.

+0

я пытался обновить панель. но это не работает, как я хотел –

1

С помощью jquery мы можем отправить выбранный идентификатор узла в строку запроса и на document.ready, мы можем прочитать и выделить этот узел. Посмотрите на код:

код за OnClick код:

public void TreeView1_OnClick(Object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(
     Page, 
     Page.GetType(), 
     "HighlightSelectedNode", 
     "HighlightSelectedNode();", 
     true 
    ); 
} 

и JavaScript:

<script type="text/javascript" language="javascript"> 
    function HighlightSelectedNode() { 
     var selectedNodeID = $('#<%= TreeView1.ClientID %>_SelectedNode').val(); 
     if (selectedNodeID != "") { 
       document.location.href = "http://" + window.location.host 
        + window.location.pathname 
        + "?Node=" + selectedNodeID; 
       return false; 
     } else { 
      // alert("Not found"); 
     } 
    } 

    // Highlight active node on pageload. 
    $(document).ready(function() { 
     var querystring = location.search.replace('?', '').split('&'); 
     var queryObj = {}; 
     for (var i = 0; i < querystring.length; i++) { 
      var name = querystring[i].split('=')[0]; 
      var value = querystring[i].split('=')[1]; 
      queryObj[name] = value; 
     } 
     var nodeID = queryObj["Node"]; 
     $('#' + nodeID).css({ 'background-color': '#888'});    
    }); 
</script> 
Смежные вопросы