jQuery Mobile - Alternar coluna

Descrição

A alternância de coluna coloca as colunas em um esconderijo e permite que o usuário selecione colunas conforme sua escolha usando data-mode = "columntoggle" atributo.

Exemplo

O exemplo a seguir demonstra o uso de alternância de coluna no jQuery Mobile Framework.

<!DOCTYPE html>
<html>
   <head>
      <title>Table Column Toggle</title>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <link rel = "stylesheet" href = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
      <script src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
      <script src = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
   </head>

   <body>
      <div data-role = "header">
         <h2>Header</h2>
      </div>
      
      <table data-role = "table" id = "table-column-toggle" data-mode = "columntoggle" 
         class = "ui-responsive table-stripe" data-column-btn-theme = "b" 
         data-column-btn-text = "Click here to display columns...">
         
         <thead>
            <tr>
               <th data-priority = "1">Position</th>
               <th>Team</th>
               <th data-priority = "2">Rating</th>
               <th data-priority = "3">Points</th>
            </tr>
         </thead>
         
         <tbody>
            <tr>
               <th>1</th>
               <td>SOUTH AFRICA</td>
               <td>114</td>
               <td>3308</td>
            </tr>
            
            <tr>
               <th>2</th>
               <td>INDIA</td>
               <td>110</td>
               <td>3535</td>
            </tr>
            
            <tr>
               <th>3</th>
               <td>AUSTRALIA</td>
               <td>109</td>
               <td>4376</td>
            </tr>
            
            <tr>
               <th>4</th>
               <td>PAKISTAN</td>
               <td>106</td>
               <td>2977</td>
            </tr>
            
            <tr>
               <th>5</th>
               <td>NEW ZEALAND</td>
               <td>99</td>
               <td>3578</td>
            </tr>
            
            <tr>
               <th>6</th>
               <td>ENGLAND</td>
               <td>99</td>
               <td>3940</td>
            </tr>
            
            <tr>
               <th>7</th>
               <td>SRI LANKA</td>
               <td>89</td>
               <td>3123</td>
            </tr>
            
            <tr>
               <th>8</th>
               <td>WEST INDIES</td>
               <td>76</td>
               <td>2504</td>
            </tr>
            
            <tr>
               <th>9</th>
               <td>BANGLADESH</td>
               <td>47</td>
               <td>1026</td>
            </tr>
            
            <tr>
               <th>10</th>
               <td>ZIMBABWE</td>
               <td>5</td>
               <td>53</td>
            </tr>
         </tbody>
      </table>
      
      <div data-role = "footer">
         <h2>Footer</h2>
      </div>
      
   </body>
</html>

Resultado

Vamos realizar as seguintes etapas para ver como funciona o código acima -

  • Salve o código html acima como jqm_table_column_toggle.html arquivo na pasta raiz do servidor.

  • Abra este arquivo HTML como http: //localhost/jqm_table_column_toggle.html e a seguinte saída será exibida.

Modo do seletor de coluna e configuração da prioridade da coluna

Você pode exibir o elemento da tabela usando data-role = "table" e data-mode = "columntoggle" atributos conforme mostrado na seguinte tag.

<table data-role = "table" id = "table-column-toggle" data-mode = "columntoggle">

Você pode especificar qual coluna deve ser escondida ou mostrada usando o data-priority Atribua e atribua o valor de prioridade de 1 a 6. O cabeçalho da tabela que terá o atributo data-priority, estará disponível no menu da coluna.

Tema e Personalização

Por padrão, o texto no botão é "Colunas ...", mas você pode alterar o texto usando o data-column-btn-textatributo para a tabela. Você também pode definir o tema do botão ou do menu seletor de coluna usando odata-column-btn-themeatributo. As linhas podem ser exibidas em um formato listrado adicionandotable-stripe classe para o elemento da tabela.

Tornando as tabelas responsivas

Você pode tornar as tabelas responsivas de acordo com o tamanho da tela e a orientação. As consultas de mídia especificam o comportamento responsivo para colunas usando prioridade e grava a consulta de mídia usandomin-widthatributo. As larguras que são definidas usando unidades em, responderão às mudanças de tamanho da fonte e você pode calcular o valor do pixel em unidades em dividindo a largura alvo por 16 pixels.

Aplicando um Ponto de Interrupção Predefinido

Você pode aplicar os pontos de interrupção personalizados para cada nível de prioridade adicionando o class = "ui-responsive" ao elemento da tabela conforme mostrado abaixo -

<table data-role = "table" class = "ui-responsive" id = "table-column-toggle" data-mod 
   e ="columntoggle">

Você pode usar os seguintes estilos predefinidos para cada nível de prioridade -

  • data-priority = "1" - É usado para exibir a coluna em 320px (20em).

  • data-priority = "2" - É usado para exibir a coluna em 480px (30em).

  • data-priority = "3" - É usado para exibir a coluna em 640px (40em).

  • data-priority = "4" - É usado para exibir a coluna em 800px (50em).

  • data-priority = "5" - É usado para exibir a coluna em 960px (60em).

  • data-priority = "6" - É usado para exibir a coluna em 1120px (70em).

Cabeçalhos de coluna agrupados

Os dados da coluna podem ser mostrados em cada título agrupado para dados financeiros. Você pode usar o atributo priority para analisar a linha especificada e exibir os grupos de títulos como opções. Qualquer cabeçalho de tabela com prioridade estará disponível no menu do seletor de coluna.