2010-09-12 6 views
2

J'ai une vue arborescente à l'intérieur d'un panneau. L'arborescence a un parent et un enfant. Le focus doit aller au parent ou à l'enfant correspondant lorsque j'appuie sur n'importe quel caractère du clavier. J'ai essayé de Google une solution mais je n'ai pas pu trouver.focus de caractère sur l'arborescence asp.net

Répondre

1

Vous aurez besoin de JavaScript pour réaliser ce que vous essayez.

Vous devez regarder keyboard events pour voir quelle touche est pressée, puis focus l'élément correct.

0
 document.onkeyup = function keyPress(e) { 
     wkey = e.which ? e.which : window.event.keyCode; 
     var ch = String.fromCharCode(wkey).trim(); 
     var chlower = ch.toLowerCase().trim(); 

     var foo = []; 
     var fo = []; 
     var k = 0; 
     var lastword; 
     var looping = []; 
     var lastwordforkeypress; 

     $('#ctl00_mainContentPlaceHolder_channelTreeView table').each(function(l, table) { 
      looping[l] = $(table).text().trim(); 
      if (looping[l].indexOf(ch) === 0 || looping[l].indexOf(chlower) === 0) { 
       lastwordforkeypress = looping[l]; 
      } 
     }); 

     $('#ctl00_mainContentPlaceHolder_channelTreeView table').each(function(i, table) { 
      foo[i] = $(table).text().trim(); 
      if (foo[i].indexOf(ch) === 0 || foo[i].indexOf(chlower) === 0) { 
       fo = $('#keystroke').html().split(','); 

       if (fo[k].trim() == foo[i].trim()) {       
        k = k + 1; 
       } 
       else { 
        $('#keystroke').html($('#keystroke').html() + foo[i] + ','); 
        lastword = foo[i].trim(); 
        var keystroke = $('#keystroke').html() 
        if (keystroke.indexOf(ch) === 0 || keystroke.indexOf(chlower) === 0) { 
         $('table').select().css({ backgroundColor: 'white' }); 
         $(table).select().css({ backgroundColor: 'orange' }); 
         if (lastwordforkeypress == lastword) { 
          $('#keystroke').html(''); 
          k = 0; 
         } 
         return false; 
        } 
        else { 
         $('#keystroke').html(''); 
         k = 0; 
         $('#keystroke').html($('#keystroke').html() + foo[i] + ','); 
         $('table').select().css({ backgroundColor: 'white' }); 
         $(table).select().css({ backgroundColor: 'orange' }); 
         return false; 
        } 
       } 
      } 
     }); 
    } 

J'ai atteint grâce à Jquery. Mais la chose est que je ne pouvais pas faire défiler la barre de défilement du panneau lorsque l'accent est mis sur l'arborescence. Je n'ai aucune idée du tout. besoin d'aide.