Jquery Asp.Net:更新后TableSorter不工作
我的Asp.Net网站应该向用户显示一些表格数据。我使用TableSorter在客户端对这些数据进行排序:Jquery Asp.Net:更新后TableSorter不工作,jquery,asp.net,ajax,tablesorter,Jquery,Asp.net,Ajax,Tablesorter,我的Asp.Net网站应该向用户显示一些表格数据。我使用TableSorter在客户端对这些数据进行排序: <script>var $jQuery171 = jQuery.noConflict();</script> <script src="scripts/jquery.tablesorter.min.js" type="text/javascript"></script> <script type="text/jav
<script>var $jQuery171 = jQuery.noConflict();</script>
<script src="scripts/jquery.tablesorter.min.js" type="text/javascript"></script>
<script type="text/javascript">
$jQuery171(document).ready(function () {
$jQuery171('#myControl').tablesorter();
});
</script>
和AJAX脚本:
<script>
function GetDevicesInfoContent() {
$.ajax({
type: "POST",
url: "myUrl",
data: "{Lang:'tr'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) { OnGetDevicesInfoSuccessContent(response); },
error: function (response) { OnGetDevicesInfoError(response); }
})
}
function OnGetDevicesInfoSuccessContent(response) {
var devicesInfoControlId = "<%=report2_gridView.ClientID%>";
$("#" + devicesInfoControlId).empty();
if (response.d.length > 0) {
var jsonObject = eval('(' + response.d + ')');
var header = JSonObjectPropertiesToHeader(jsonObject, devicesInfoControlId);
var requiredProperties = [];
for (var i = 0, cell; cell = header.rows[0].cells[i]; i++) {
requiredProperties[cell.innerHTML] = cell.innerHTML;
};
JSonObjectsToBody(jsonObject, requiredProperties, devicesInfoControlId);
}
}
function OnGetDevicesInfoErrorContent(response) {
alert("MyError:" + response.status + " " + response.statusText);
}
</script>
函数getDeviceInfoContent(){
$.ajax({
类型:“POST”,
url:“我的url”,
数据:“{Lang:'tr'}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(响应){OnGetDeviceInfoSuccessContent(响应);},
错误:函数(响应){OnGetDeviceInfoError(响应);}
})
}
功能OnGetDevicesInfoSuccessContent(响应){
var DeviceInfoControlId=“”;
$(“#”+DeviceInfoControlId).empty();
如果(响应长度>0){
var jsonObject=eval(“(“+response.d+”)”);
var header=jsonObject PropertiesToHeader(jsonObject,DeviceInfoControlId);
var requiredProperties=[];
对于(变量i=0,单元格;单元格=标题。行[0]。单元格[i];i++){
requiredProperties[cell.innerHTML]=cell.innerHTML;
};
JSonObjectsToBody(jsonObject、requiredProperties、deviceinfocontrolid);
}
}
函数OnGetDevicesInfoErrorContent(响应){
警报(“MyError:+response.status+”“+response.statusText”);
}
如果我再次应用tablesorter,那么排序工作正常。我以前从未使用过TableSorter,我不知道更新后为什么失败。有人能告诉我吗?在表上初始化tablesorter时,它会将事件绑定添加到
thead
单元格,并从每个tbody
单元格的文本中处理和创建缓存
当$(“#”+TableId).empty()时当代码>被执行时,它实际上清除了所有内容,包括事件侦听器
如果从ajax数据构建的新表具有相同的标题单元格和文本,那么需要做的就是清空tbody
。不要碰thead
!重建tbody并在表中就位后,可以通过触发表上的“更新”来更新tablesorter的缓存
$("#" + TableId).trigger('update');
如果新的ajax数据确实完全改变了表,那么必须重新初始化tablesorter
$("#" + TableId).trigger('update');