0

我在 hobo 中的 table-plus 功能提供的排序方面遇到了一些问题。假设我有一些 javascript 函数来显示不同的表格:

function showTable1() {
    ...
}


function showTable2() {
    ...
}


function showTable3() {
    ...
}

Event.observer(windows, 'load', showTable1);

我用来显示表格。我们可以看到,默认情况下会显示表 1,每次我尝试排序时,比如说表 2 显示后,页面会刷新,然后它会自动切换回显示表 1。

我打算用处理程序替换默认行为:

function showHandler() {
    if (case1) showTable1();
    else if (case2) showTable2();
    else showTable3();
}

这是否可以通过将 cookie 添加到 table-plus 行为来实现它?有没有更好的方法呢?

4

1 回答 1

1

如果您在 Rails 或 Hobo 应用程序中完成所有服务器端或所有客户端的所有操作,这通常是最简单的。

因此,要么切换到hobo_data_tables并在客户端进行排序,要么在服务器端进行显示切换。要执行后者,您可以添加如下表单:

<form action="">
  <input type="hidden" name="search" value="&params[:search]"/>
  <input type="hidden" name="sort" value="&params[:sort]"/>
  <input type="hidden" name="page" value="&params[:page]"/>
  <input type="hidden" name="table" value="2"/>
  <submit label="Show page 2"/>
</form>

然后在每个表周围放置 if 语句:

<if test="&params[:table].to_i==2">
   <h2> table 2 </h2>      
   <table-plus .../>
</if>

我还建议向 hobo-users 发帖——那里有一个更活跃的社区。

于 2012-09-11T20:06:01.903 回答