2010-09-12 65 views
2

我有一個面板內的樹形視圖。樹視圖有父母和孩子。當我按下鍵盤上的任何字符時,焦點需要轉到相應的父母或孩子。我試圖谷歌解決方案,但我找不到任何。字符重點在asp.net樹視圖

回答

1

你將需要使用一些JavaScript來實現你想要的東西。

您需要查看keyboard events以查看哪個鍵被按下,然後focus是正確的元素。

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; 
        } 
       } 
      } 
     }); 
    } 

我通過jquery實現。但事情是我無法滾動面板滾動條時焦點在樹視圖下。根本不知道。需要幫助。