更新:我还希望升序/降序箭头键适当地出现在单击以显示当前排序顺序的标题旁边。我已经用油漆制作了图像,并确保它们像 12 x 10 像素。
我做了很多搜索,似乎没有下载文件就无法完成。我想使用我目前必须以某种方式最初让我的 HTML 表按从私有服务器动态填充的某个列的值排序的代码。
我正在使用 Knockoutjs 进行所有数据绑定。
当我单击列的标题时,排序工作正常。它目前每隔一次单击将其按升序/降序排列(单击一次:降序,再次单击:升序,再次单击:降序......)。我想用已经使用我已经拥有的代码(如果可能的话)按降序排序的 TimeObserved 信息来填充表格。任何帮助表示赞赏。
请注意:我对这一切都很陌生,我从个人经验中知道,有人可能会要求将其放入 jsfiddle。我不习惯 jsfiddle 并且忙于工作。请理解,我现在没有时间将其转换为那种格式,并且提供的代码应该不仅仅是信息丰富且有条理的阅读和理解。谢谢你。
这是此操作所需的代码片段:
HTML 文件:
///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ////////////////////
<table border="6" id="widget"><thead>
<tr>
<th><a href=#" data-bind="click: SortByTimeObserved">TimeObserved</a></th>
</tr></thead>
<tbody data-bind="foreach: rows">
<td><input data-bind="value: TimeObserved" /></td>
</tbody>
</table>
<script src="TableViewModel.js" type="text/javascript"></script>
///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// /////////////////////
继承人的 javascript 视图模型文件:
==================================================== =================================
function Event(TimeObserved){
var self = this;
self.TimeObserved = TimeObserved;
}
function TableViewModel(){
var self = this;
self.sortColumn = "TimeObserved";
self.sortAscending = true;
self.SortByTimeObserved(){
if(self.sortColumn == "TimeObserved")
self.sortAscending = !self.sortAscending;
else{
self.sortColumn = "TimeObservable";
self.sortAscending = true;
}
self.rows.sort(function(a,b){
if(self.sortAscending == true)
for(self.TimeObserved in self.rows)
return a.TimeObserved > b.TimeObserved ? -1 : 1;
else
return a.TimeObserved < b.TimeObserved ? -1 : 1;
});
}
}
this.Model = new TableViewModel;
ko.applyBindings(this.Model);
==================================================== =================================