0

我在 .aspx 页面中有一个 Gridview,它从另一个被调用的页面获取其行。作为 SQL 查询的结果,此其他页面返回单个表行 (tr)。这种情况每秒都会发生。

新行将添加到表格/网格视图的顶部。

我需要将行数限制为一个数字,比如 10。到目前为止,我的代码(主要通过 Stackoverflow 的示例找到)运行良好,除了当表格达到 10 行时,它会闪烁第 9 行和第 10 行。即它会在加载时显示 9 行,然后是 10 行,然后是 9 行,依此类推。

理想情况下,它会添加最多 10 行,然后随着新行的添加,第 10 行或最后一行会在没有任何闪烁的情况下下降。可以这么说,它会更“流畅”。就像你在滚动一样。

我发现的所有示例都由于单击按钮而删除了行。我需要 table/gridview 增长到 10,然后随着新行的添加,最后一行下降。

我希望这是有道理的。

关于如何改进这一点的任何建议?谢谢你。

<script type="text/javascript" >
  var jq = jQuery.noConflict();
  f1();
  function f1() {  // gridView updated every 1000ms
    jq(document).ready(function () {
      var lastid = jq.cookie("maxid");  // set by pageInit
      if (lastid != "0")
        jq.get("page2.aspx", function (dataReturned) {
          if (dataReturned != "")    // rows in database - add to the gridView 
          {
            // add new row
            jq('#<%=GridView1.ClientID %> tr:first').after(dataReturned);
            // hide the new row, then fade it back in ----  tr:eq(0) is the header row.

            jq('#<%=GridView1.ClientID %> tr:eq(1)').hide().fadeIn(1000, function () { 
                  // nop
                }).css('display', 'table-row');
          }
          window.setTimeout("f1()", 1000);
        });
      else
        jq.get("page2.aspx", function (dataReturned) {
          if (dataReturned != "")     //new rows in database 
          {
            jq('#<%=GridView1.ClientID %>').html(dataReturned);
          }
          window.setTimeout("f1()", 1000);
        });
    });
       LimitRows();
    }

  function LimitRows(){
    while (jq('#<%=GridView1.ClientID %> tr').length > '10')
     {
       jq('#<%=GridView1.ClientID%> tr:last').remove();
    }      }    
</script>
4

0 回答 0