Jquery数据表搜索选项未启用排序图标

时间:2016-10-01 14:03:37

标签: javascript jquery css

我被困在jquery数据表中。如果我们使用jquery数据表,那么它默认提供搜索选项。但问题是,如果我搜索特定记录,如果内容不匹配或我找到单个记录。然后我需要删除排序图标。它会工作,但当我按回空格并删除搜索内容,然后像往常一样显示所有记录。但是现在可以排序的图标是禁用它需要再次启用然后是什么解决方案。

这是函数调用: -

public IEnumerable<ResultTableTemplate> GetResultsFromTable(string tableName) {
    using (var context = new MyContext()) {
        var query = context.ExecuteStoreQuery<ResultTableTemplate>("SELECT " +
            "ALL_THOSE_COLUMN_NAMES... " +
            "FROM " + tableName;

        return query.ToList();
    }
}

这是功能定义: -

$('#datatable-information').on('draw.dt', function () {

    disableSortingSearchOption(oTable, 'datatable-information_filter input');

1 个答案:

答案 0 :(得分:0)

这是一种删除表头上的排序箭头的简单方法,当绘制的表格有1行或更少时,将指针更改为默认值。

在多行上,表格排序和指针返回&#34;正常&#34;。

我的解决方案与您提供的代码完全不同。

function disableSortingSearchOption(oTables) {

  if (oTables != null) {
    var colCount = 0;
    $(oTables).find('th').each(function(){
      colCount++;
    });
    //console.log(colCount+" colunms");

    var rowCount = 0;
    $(oTables).find('td').each(function(){
      rowCount++;
    });
    rowCount = rowCount/colCount;
    //console.log(rowCount+" rows");

    if (rowCount <= 1) {
      //Remove hand cursor
      $(oTables).find('th').css('cursor', 'default');

      //Remove sort arrows
      $(oTables).find('th').removeClass('sorting');

    }else{
      //Add hand cursor
      $(oTables).find('th').css('cursor', 'pointer');

      //Add sort arrows
      $(oTables).find('th').addClass('sorting');
    }
  }
}

我们需要知道行数...
为实现此目的,我们首先计算列数量和整个表格的td金额。

行数是td金额除以列数 根据此数字,我们可以在所有sorting上添加或删除th类并设置光标。

请注意,如果没有结果,则仍有一行显示&#34;未找到匹配的记录&#34; 。但由于在这种情况下只有1 td ...除以colunm计数,我们必须考虑&#34;一个或更少的线&#34;。
;)

看看这个CodePen