数据表未显示SQL查询结果的相同顺序的结果

时间:2014-09-25 10:56:01

标签: asp.net-mvc stored-procedures datatable

您好我正在研究ASP.NET MVC项目。我正在使用datatable来显示客户详细信息。在控制器中,我正在调用一个存储过程,该过程以asc顺序获取客户详细信息。喜欢:

    SELECT id, firstname, lastname, colnum
    FROM TABLE1
    ORDER BY colnum ASC

colnum的结果为1,2,3,4,5。所以我按1,2,3,4,5的顺序得到结果。所以当我调试时,我得到如下结果:

    <thead>
     <tr>
     <th>
      id
      </th>
      <th>
      firstname
       </th>
       <th>
       lastname
      </th>

      </tr>
      </thead>
      <tr>
      <td> csv1 </td>
      <td> fname1 </td>
      <td> lname1 </td>
      </tr>
      <tr>
      <td> csv2 </td>
       <td> fname2 </td>
      <td> lname2 </td>
      </tr>
      <tr>
      <td> csv3 </td>
      <td> fname3 </td>
      <td> lname3 </td>
      </tr>
      <td> csv22 </td>
      <td> fname4 </td>
      <td> lname4 </td>
      </tr>

这是我调试时得到的结果。我在Viewdata中有这个结果。

但是当我将这个Viewdata绑定到datatable时,我会根据id的字母顺序得到结果。

就是这样:

<tr>
<td> csv1 </td>
<td> fname1 </td>
<td> lname1 </td>
</tr>
<tr>
<td> csv2 </td>
<td> fname2 </td>
<td> lname2 </td>
</tr>
<tr>
<td> csv22 </td>
<td> fname4 </td>
<td> lname4 </td>
</tr>
<td> csv3 </td>
<td> fname3 </td>
<td> lname3 </td>
</tr>

如您所见,在数据表中我得到的结果如csv1,csv2,csv3,csv33,csv34,csv4,csv5。但我需要显示结果,如csv1,csv2,csv3,csv4,csv5,csv33,csv44。

我假设它是基于字母顺序获取结果的数据表功能。我怎样才能改变这个以达到我想要的结果呢?

1 个答案:

答案 0 :(得分:0)

在线搜索后,我找到了答案。我发帖这个想法可能对其他人有帮助。

正如我在帖子中提到的,我的问题是, colnum 结果。从存储过程中选择时,我选择基于 colnum 的结果,但在将结果显示到数据表时,我没有将colnum结果绑定到数据表。

所以它曾用于基于 id 列进行排序,其中我有结果,如csv1,csv2,csv23,csv24,csv4等。

因此,我使用的解决方法是将 colnum 结果绑定到数据表,但将其隐藏起来。在数据表中排序时,请根据 col 列的 colnum 结果进行排序。

这是我使用的代码:

  $('#results').dataTable({
        "aoColumnDefs": [


             { visible: false, targets: [0] },
           { targets: [ 1 ], orderData: [ 0 ] }

        ]
    });

所以这里,第1列是colnum,不可见,第2列 id 我正在使用基于第1列的排序,即 colnum

希望它对其他人有用。