tablesorterPager插件:如何与其他控件集成



使用tableSorter的2.0.5版本和tablesorterPager插件。我正在使用ajax加载表行(使用文档中的初始配置,对ajax URL进行微小更改以满足我的需求)。一切都很好。

我想做的是将tablesorterPager的过滤函数与其他HTML控件集成。具体来说,我的应用程序处理工单。订单的状态可以是"打开"或"关闭"。我想使用一个单选按钮集(或选择,或其他),允许用户在"打开、关闭、任意"之间进行选择,并在进行选择时刷新页面,我想保留用户在表格显示中所做的任何过滤/排序。

例如,假设用户在其中一个表列的筛选框中键入世界"foo",并选择按日期排序。就本例而言,假设状态控件设置为"任意"。用户决定将结果限制为"打开"项目。当他点击更改控件时,我希望插件发出ajax请求,并包括"foo"过滤器(来自表列上的过滤器框)和状态控件上的选择(即"打开"),并保留用户已经选择的排序选项。

有人能为我指明正确的方向吗?如何操作/更新ajax URL以包括其他控件中的过滤器选择?或者还有其他技术可以做到这一点吗?

谢谢,Don

有一个演示展示了如何使用带有自定义寻呼机控件的寻呼机。事实上,这个SO答案展示了如何将寻呼机与另一个第三方分页插件一起使用。

至于向url添加更多信息,您可以修改传递给jQuery $.ajax调用(ref)的ajaxObject

ajaxObject: {
  // add ajax settings here
  dataType: 'json',
  data: {
    'Status' : 'all'
  } 
},

或者,使用customAjaxUrl回调函数修改URL。

// modify the url after all processing has been applied
customAjaxUrl: function(table, url) {
  return url += '&Status=all';
}

感谢Mottie的帮助。根据你的建议,以下是我为解决问题所做的工作。

非常简单:分类器的customAjaxUrl回调函数可以向AjaxUrl添加任何您想要的内容,包括页面上控件的值。

例如,我有一个名为CustomerID的输入。我希望这个值包括

   customAjaxUrl: function (table, url) {
        // manipulate the url string as you desire
        // url += '&currPage=' + window.location.pathname;
         // Append "CustomerID=" to the query string,
         // and use '$("#CustomerID").val()' to obtain
         // the value of the CustomerID selection.
         url += '&CustomerID=' + $("#CustomerID").val(); 
         // trigger a custom event; if you want
         $(table).trigger('changingUrl', url);
         // send the server the current page
         return url;

我可以向查询字符串中添加其他项,从其他控件中读取值。

请注意,您可能希望触发表的更新。例如,在我的项目中,用户有一个复选框控件,用于确定是否包括特定状态的票证。选中后,我希望刷新表,同时保留所有现有的筛选器和排序。

您可以使用寻呼机插件的pagerUpdate方法来完成此操作。我把触发器放在一个函数中,这样它就可以被调用为多个控件的onclick/onchange事件处理程序:

function doTableReresh(){
  $("#mytable").trigger("pagerUpdate");
}

最新更新