2015-07-16 4 views
0

У меня есть таблица HTML, которая считывает данные из моей БД, но имена в базе данных не в порядке, как я могу упорядочить мой столбец «Фондовый», чтобы они были в алфавитном порядке (AZ)Сортировка таблицы HTML в порядке убывания

Мой HTML для моей таблице ниже

<table class="table table-striped"> 
     <tr> 
      <th style="padding-right: 10px;">Stock</th> 
      <th style="width: 7%; padding-right: 10px;">SEDOL</th> 
      <th style="width: 7%; padding-right: 10px;">Quantity</th> 
      <th style="width: 7%; padding-right: 10px;">Value</th> 
      <th style="width: 15%;" class="text-center">Actions</th> 
    </tr> 
    <% foreach (var stck in stocks) {%> 
    <tr> 
      <td style="vertical-align: middle"><%: stck.StockName%></td> 
      <td style="vertical-align: middle"><%: stck.SEDOL%></td> 
      <td style="vertical-align: middle"><%: stck.Quantity%></td> 
      <td class="text-right" style="vertical-align: middle"><%: String.Format("{0:c}", stck.value)%></td> 
      <td class="text-right"> 
       <%if (disinvestments.Find(x => x.Stock == stck.StockName) != null) {%> 
       <button type="button" class="btn btn-default" disabled id="create_<%: stck.StockName%>" onclick="SetupDisinvestmentsFields(this,'<%=stck.SEDOL%>','<%=stck.Quantity%>','<%=stck.value%>')"> 
        <span class="glyphicon glyphicon-plus"></span> Create 
       </button> 
       <%} else {%> 
       <button type="button" class="btn btn-default" id="create_<%: stck.StockName%>" onclick="SetupDisinvestmentsFields(this,'<%=stck.SEDOL%>','<%=stck.Quantity%>','<%=stck.value%>')"> 
        <span class="glyphicon glyphicon-plus"></span> Create 
       </button> 
       <%} %> 
      </td> 
    </tr> 
    <% } %> 
</table> 

можно ли это сделать в JavaScript, JQuery, HTML, я не уверен, Что лучший способ этого, следовательно, мой вопрос

PS Я не хочу менять таблицу на webgrid или datatable.

+0

вам нужно для предоставления визуализированного html ... Не для этого .. –

+1

Видимо, вы используете smarty (и так php). Почему бы не отсортировать по php? – ben

+0

[list.js хорош для сортировки в интерфейсе] (http://www.listjs.com) – royhowie

ответ

2

Хорошо, так что вам нужно будет сделать, это на самом деле добавить order by Stockname DESC в конце вашего запроса.

+0

Я даже не думал об этом, глупый, нет. Должно быть, у него был мозг.Так намного проще этот путь – murday1983

+0

Ха-ха! Да, это время от времени имеет тенденцию :) Некоторые вещи, которые, как вы думаете, вы полагаете делать с PHP, вы можете сделать в своем SQL-запросе, конечно же! – James111

0

вам нужно добавить пункт заказа, когда вы выборки данных из базы данных

select * from Table_Name order by Column_Name asc // for accending order 

select * from Table_Name order by Column_Name desc // for decending order 
+0

теперь у вас будут записи, чтобы не нужно ничего делать в javascript –

1

Почему вы не просто записать его в DB Query?

Я имею в виду что-то вроде этого:

"SELECT * FROM <table> WHERE <sequence> ORDER BY <parameter to order> ASC" 
+0

Я уже добавил ответ с запросом 'order by' – James111

+0

, не принимайте его лично. много пипсов здесь просто сваливают на людей – Drew

0

2 пути я могу думать:

  • собирать ваши данные упорядоченные (ORDER BY - DESC или ASC в вашей БД)
  • Используйте который может сделать это для вас. Datatables плагин работал отлично для меня.
0

Как Есть много ответов предполагают порядок это на стороне сервера (я тоже), если вы настаиваете, чтобы отсортировать его по JavaScript/JQuery:

  1. Получить все строки, кроме первой, так как его название ряд.
  2. Отсоедините от стола и откройте до array
  3. Сортировка по Name Текст столбца.
  4. Добавить обратно в стол.

var rows = $('table tr:not(:first)').detach().toArray(); 
 
rows.sort(function(rowA, rowB) { 
 
    var textA = $(rowA).find('td:first').text(); 
 
    var textB = $(rowB).find('td:first').text(); 
 
    console.log(textA, textB); 
 
    return textA < textB ? -1 : 1; 
 
}); 
 

 
$('table').append(rows);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<table class="table table-striped"> 
 
     <tr> 
 
      <th style="padding-right: 10px;">Stock</th> 
 
      <th style="width: 7%; padding-right: 10px;">SEDOL</th> 
 
      <th style="width: 7%; padding-right: 10px;">Quantity</th> 
 
      <th style="width: 7%; padding-right: 10px;">Value</th> 
 
    </tr> 
 
     <tr> 
 
      <td style="vertical-align: middle">CCC</td> 
 
      <td style="vertical-align: middle">5</td> 
 
      <td style="vertical-align: middle">6</td> 
 
      <td class="text-right" style="vertical-align: middle">3</td> 
 
    </tr> 
 
    <tr> 
 
      <td style="vertical-align: middle">AAA</td> 
 
      <td style="vertical-align: middle">1</td> 
 
      <td style="vertical-align: middle">2</td> 
 
      <td class="text-right" style="vertical-align: middle">3</td> 
 
    </tr> 
 
     <tr> 
 
      <td style="vertical-align: middle">BBB</td> 
 
      <td style="vertical-align: middle">3</td> 
 
      <td style="vertical-align: middle">4</td> 
 
      <td class="text-right" style="vertical-align: middle">3</td> 
 
    </tr> 
 
    <tr> 
 
      <td style="vertical-align: middle">ABC</td> 
 
      <td style="vertical-align: middle">1</td> 
 
      <td style="vertical-align: middle">2</td> 
 
      <td class="text-right" style="vertical-align: middle">3</td> 
 
    </tr> 
 
</table>

0

Я рекомендую вам использовать «заказ ColumnName DESC» в выборе заявление, из-за сортировки данных таблицы будет влиять на производительность вашего кода

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