有一个朋友写了这样一段代码: <!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> 这个是静态的加入值的。我就是要动态的加入值。目前就是要解决这个问题。 我也是刚搞网络编程的,其中的一些东西我还在摸索阶段,希望有高人指点!谢谢!
晕楼主说的太专业所以大家就跟着都晕了。说白了这就是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 %>
照我理解的,你就把你的FieldBuffer当成一个字符串,在这个字符串的前面加上<script language="javascript">,后面加上</script>就行了
<!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>
这个是静态的加入值的。我就是要动态的加入值。目前就是要解决这个问题。
我也是刚搞网络编程的,其中的一些东西我还在摸索阶段,希望有高人指点!谢谢!
注: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
%>
我知道你上面写的意思
我这边是用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里面写一个数组,通过数组把值传到前台?
而且在bean里面定义的时候,页面上这些域的值的类型只可以是String或String[]的
2. XML
3. DataSource绑定
4. 动态添加一个script元素或给已经存在的script元素指定一个新的src
...