Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Asp.Net:更新后TableSorter不工作_Jquery_Asp.net_Ajax_Tablesorter - Fatal编程技术网

Jquery 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

我的Asp.Net网站应该向用户显示一些表格数据。我使用TableSorter在客户端对这些数据进行排序:

<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');