以下是一个实时股票的数据接口<script type="text/javascript" src="http://hq.sinajs.cn/list=sh601898" charset="gb2312"></script>
<script type="text/javascript">
        var elements = hq_str_sh601898.split(",");
    document.write(elements[0] + " : " + elements[3] + '<br />');
</script>我在*.aspx中gridview中的数据如下,想让now_price实时更新,或电一个按钮更新一次,相关的js代码如何写。我自己写了一些,恳请指正、补充。感谢!-- 数据表
stock_id |  now_price
---------+-----------
SH601898 |  11.52    
---------+-----------
SH600420 |  18.98     
---------+-----------
SZ000725 |  3.32     
---------+-----------<script type="text/javascript">    for (var i = 1; i < GridView1.rows.length; i++) {
        document.write(i + "<br />");
        document.write(document.getElementById("GridView1").rows[i].cells[0].innerText + "<br />");
        document.getElementById("GridView1").rows[i].cells[2].vAlign = 'top'; //如果水平右对齐的话,请问如何写?
        
        var stockID = document.getElementById("GridView1").rows[i].cells[0].innerText;
        document.write("stockID: " + stockID + "<br />")

 //..........???
    }
</script>

解决方案 »

  1.   

    document.getElementById("GridView1").rows[i].cells[2].align = 'right';or
    document.getElementById("GridView1").rows[i].cells[2].style.textAlign = 'right';
      

  2.   

    感谢 #1楼 net_lover(【孟子E章】),右对齐问题解决。
      

  3.   

    你这样写效率很底,直接innerHTML一整张表,即整张表都重写一次,即对比你现在这样写效率要高。
      

  4.   

    要实时的话,setTimeOut或setInterval,每次重新设置SCRIPT的src地址并用随机数作时间戳避免缓存。就OK了。
      

  5.   

    实时更新绝对不能使用document.write
      

  6.   

    我自己用ASP做了(测试通过):
            <%
                Dim stock_ID As String = "sh601898"
                Response.Write("<br />")
                For iii As Integer = 0 To GridView1.Rows.Count - 1
                    stock_ID = GridView1.Rows(iii).Cells(0).Text.ToLower 'JScript 区分大小写!返回的文件中字符串是小写的 hq_str_sh601898
                    Response.Write("<script type='text/javascript' src='http://hq.sinajs.cn/list=" & stock_ID & "' charset='gb2312'></script>")
                    Response.Write("<script type='text/javascript'>")
                    Response.Write("    try {")
                    Response.Write("        var elements = hq_str_" & stock_ID & ".split(',');")
                    Response.Write("        var Ratio = ((elements[3]-document.getElementById('GridView1').rows[" & iii + 1 & "].cells[6].innerText)/document.getElementById('GridView1').rows[" & iii + 1 & "].cells[6].innerText).toFixed(4);")
                    Response.Write("        document.getElementById('GridView1').rows[" & iii + 1 & "].cells[1].innerText =elements[0];") 'stock_name
                    Response.Write("        document.getElementById('GridView1').rows[" & iii + 1 & "].cells[2].innerText =elements[3];") 'now_price
                    
                    Response.Write("        document.getElementById('GridView1').rows[" & iii + 1 & "].cells[3].innerText =((elements[3]-elements[2])*100/elements[2]).toFixed(2) + ' %';") 'today's Ratio %
                    
                    Response.Write("        document.getElementById('GridView1').rows[" & iii + 1 & "].cells[1].align = 'center';") 'or .cells[2].vAlign = 'top'
                    Response.Write("        document.getElementById('GridView1').rows[" & iii + 1 & "].cells[2].align = 'right';") 'or style.textAlign = 'right'
                    Response.Write("    } catch(e) {")
                    Response.Write("    }")
                    Response.Write("</script>")
                Next
    %>