如何在MVC中使用Ajax每秒刷新页面?

时间:2011-09-10 20:51:20

标签: ajax asp.net-mvc-3

我想在我的页面中创建一个机制,以便它使用Ajax每秒刷新一次表数据。我怎么能这样做?

1 个答案:

答案 0 :(得分:8)

假设您有一个控制器操作将表格作为局部视图返回,您可以使用:

<script type="text/javascript">
    $(function() {
        setInterval(loadTable,1000);  // invoke load every second
        loadTable(); // load on initial page loaded
    });

    function loadTable() {
        $('#tablecontainer').load( '/controller/tabledata' );
    }
</script>

<div id="tablecontainer">
</div>

您的tabledata操作会返回包含该表的部分视图。

 <table>
    <thead>...</thead>
    <tbody>...</tbody>
 </table>
通过点击处理程序(省略脚本标签)

编辑

$(function() {
     var timer;
     $('#enableCheckbox').change( function() {
         if ($(this).find(':checked').length) {
             timer = setInterval(loadTable,1000); // set up timer
             loadTable();
         }
         else if (timer) { // stop the interval timer
             clearInterval(timer);
             timer = null;
         }
     });
 });

 function loadTable() {
     $('#tablecontainer').load( '/controller/tabledata #innercontainer' );
 }

完整视图(至少包含以下内容)

 <div id="tablecontainer">
 <div id="innercontainer">
 <table>
    <thead>...</thead>
    <tbody>...</tbody>
 </table>
 </div>
 </div>