在客户端对页面处置进行排序的最佳方法

时间:2016-01-04 13:18:06

标签: javascript jquery html asp.net-mvc

我正在开发一个MVC项目,在该项目中我在一个表中的几个局部视图中显示一个ViewModel。我有一个控件,用户可以在其中更改表的显示方式,如下所示:

<table>
 <tr>
  <td>
    partial view 1  partial view 2
  </td> 
 </tr>
 <tr>
  <td>
    partial view 3  partial view 4
  </td> 
 </tr>
</table>

<table>
 <tr>
  <td>
   partial view 1
  </td>
 </tr>
 <tr>
  <td>
   partial view 2
  </td>
 </tr>
 <tr>
  <td>
   partial view 3
  </td>
 </tr>
 <tr>
  <td>
   partial view 4
  </td>
 </tr>
</table>

每当用户想要更改视图的显示方式时,他必须单击from的提交按钮,并且应用程序必须向服务器发出请求,获取结果,并根据标志(TableDisposition) = 1或2),加载一些div。

我知道这不是最好的方法,但是我对客户端编码(javascript / jquery)缺乏了解,这使得我无法以更有效的方式做到这一点。

非常感谢任何输入。

编辑:在评论中解决。

1 个答案:

答案 0 :(得分:1)

首先,我开始在两个表中加载viewModel,每个表都在一个具有绝对定位的div中。然后我创建了一个隐藏其中一个表的函数:

 $(function () {
        $("#divTable1").css('visibility', 'hidden');
});

最后,我做了一个按下按钮触发的功能:

 $("#btnAlternateView").click(function () {
    if ($("#divTable2").css('visibility') == 'hidden') {
        $("#divTable2").css('visibility','visible');
        $("#divTable1").css('visibility', 'hidden');
    }
    else {
        $("#divTable2").css('visibility','hidden');
        $("#divTable1").css('visibility', 'visible');
    }
});

就是这样。像魅力一样。