也就是说将数据从服务器端取出来在客户端用js显示
可能会有动态记录的那种
比如:四个字段名对应四条记录
将这四条记录通过js或javascipt显示出来

解决方案 »

  1.   

    你的意思是要用程序生成动态的javascript代码么?
      

  2.   

    意思说的不太清楚。
    照我理解的,你就把你的FieldBuffer当成一个字符串,在这个字符串的前面加上<script language="javascript">,后面加上</script>就行了
      

  3.   

    对,就是生成动态的javascript代码来显示页面。目前的问题就是我不知道怎么样在客户端取到后台的数据。
      

  4.   

    有一个朋友写了这样一段代码:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <META content="MSHTML 5.50.4134.600" name=GENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=#ffffff>
    <script language="JScript">
    //bargain_no1,bond_code,bond_par_value,net_price 
     function Record(no,code,value,prince){
      this.bargainNO=no;
      this.bondCode=code;
      this.bondParValue=value;
      this.netPrince=prince;
    }
     
    function Datebase(){
      this.records=new Array();
      this.add=add;
      this.show=show;
    }
     
    function add(no,code,value,prince){
     var i;
     for(i=0;i<this.records.length;i++){
       if(no==this.records[i].bargainNO)
         return;
     }
     this.records[this.records.length]=new Record(no,code,value,prince);
    }
     
    function show(){
     var i;
     document.write("<table border=1>");
     document.write("<tr><td>成交单编号</td><td>债券代码</td><td>债券面值(万元)</td><td>净价金额</td></tr>");
       for(i=0;i<this.records.length;i++){
         document.write("<tr><td>"+this.records[i].bargainNO+"</td><td>"+this.records[i].bondCode+"</td><td>"+this.records[i].bondParValue+"</td><td>"+this.records[i].netPrince+"</td></tr>");
       }
       document.write("</table>");
    }
    var db=new Datebase();
    db.add("0001","1000","112313","1234564");
    db.add("0002","1000","112313","1234564");
    db.add("0003","1000","112313","1234564");
    db.add("0004","1000","112313","1234564");
    db.add("0005","1000","112313","1234564");
    db.add("0006","1000","112313","1234564");
    db.add("0007","1000","112313","1234564");
    db.show();
    </script></BODY></HTML>
    这个是静态的加入值的。我就是要动态的加入值。目前就是要解决这个问题。
    我也是刚搞网络编程的,其中的一些东西我还在摸索阶段,希望有高人指点!谢谢!
      

  5.   

    晕楼主说的太专业所以大家就跟着都晕了。说白了这就是js与vbs混写,一个在客户端执行一个在服务器端执行。
    注:JavaScript只有一维数组,可以用"数组的数组"来实现多维。例子:(ASP+JavaScript) 楼主把下列代码运行一下看看生成页面的源码就明白了。<script>
    //静态[客户端运行]
    var arr = new Array();<% call CreateList()%> //动态[服务器端运行]
    document.write ("在服务器端生成了"+arr.length+"行数据<BR>");
    document.write ("arr[0][0]值:"+arr[0][0]+"<BR>");//这点我写成静态的楼主能看明白点
    document.write ("arr[0][1]值:"+arr[0][1]+"<BR>");
    </script><%
    '动态[服务器端运行]
    sub CreateList() '在这里面你进行数据库操作&处理
    for i=0 to 3
    response.write "arr["&i&"] = new Array('"&i&"','"&i&"');"&chr(10)
    next
    end sub
    %>
      

  6.   

    其实 tysos(小田飞刀)已经说的很清楚了,但楼主可能没做过相关的工作所以有些茫然不知道怎么写。
      

  7.   

    谢谢surferc的帮忙
    我知道你上面写的意思
    我这边是用js调用服务器上的数据的。
    是用fieldbuffer的形式取到这些数据的。
    fieldbuffer有点类似hashmap,在js里面取数据可以用fieldbuffer.getStringValue("key").
    存数据可以用fieldbuffer.put("key",value).
    这里的js所处的层次是前台页面和后台之间的一个桥梁。也就是说,前台要得到数据,必须用js操作的到fieldbuffer.这还没有完成全部的工作。此时,js仅仅是将数据取到内存里面。我们要在页面上得到
    显示,必须在页面上用<td〉发行手续费率</td>
    <td><app:text name="emit_charge_rate" size="16" value="_getValue()"/></td>
    类似的语句显示。(另外说一下,我用的是struts架构)
    如果在页面上直接用javascipt函数取内存里面的值,我估计取不到。
    当前的问题就转换为:怎么样在js里面写一个数组,通过数组把值传到前台?
      

  8.   

    也就是说,目前我知道的只有通过_getValue()可以取道内存里面的值
    而且在bean里面定义的时候,页面上这些域的值的类型只可以是String或String[]的
      

  9.   

    “小女子”到底多小?关键是外观,同意的举手!我认为小女子越说越复杂。不就是后台通过JS去服务器拿数据么?你罗里罗索写那么多干什么啊?如果数据直接写到页面上了,那就不存在这个问题了。考虑在已经完全显示在浏览器的页面上,跟服务端交互数据,N种方式,包括:1. 隐藏Frame
    2. XML
    3. DataSource绑定
    4. 动态添加一个script元素或给已经存在的script元素指定一个新的src
    ...
      

  10.   

    晕!原来楼主说的是如何把ASP变量写成JS楼上已经有人说了,俺补充一点就是写的时候记得转换特殊字符到HTML代码就OK
      

  11.   

    没事多看看msdn上的referenece,世界就太平了