您好我正在研究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。
我假设它是基于字母顺序获取结果的数据表功能。我怎样才能改变这个以达到我想要的结果呢?
答案 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 。
希望它对其他人有用。