你的写法本身并没有错!
for(var k=0; k<aData[0].length; k++){
//请在这里检查rs.fields(k).value和aData[j][k]的值
rs.fields(k).value = aData[j][k]; //----->问题?
}在我给你的示例代码中,上面的列表是用xsl生成的,下面的表格是数据岛绑定的
另外有一个test函数可共测试使用
改成
function test() {
alert(xmldso.recordset.fields('姓名').value)
xmldso.recordset.fields('姓名').value = 'abcd'
}
并加入按钮
<input type=button value=test onclick=test()>点击后你将发现数据岛内容已经被修改了
for(var k=0; k<aData[0].length; k++){
//请在这里检查rs.fields(k).value和aData[j][k]的值
rs.fields(k).value = aData[j][k]; //----->问题?
}在我给你的示例代码中,上面的列表是用xsl生成的,下面的表格是数据岛绑定的
另外有一个test函数可共测试使用
改成
function test() {
alert(xmldso.recordset.fields('姓名').value)
xmldso.recordset.fields('姓名').value = 'abcd'
}
并加入按钮
<input type=button value=test onclick=test()>点击后你将发现数据岛内容已经被修改了
rs.movefirst();
for(var j=0; j<aData.length; j++){
alert("before for:"+rs.fields(3).value); //------>值正常
for(var k=0; k<aData[0].length; k++){
alert("before =:"+rs.fields(k).value); //------>值正常
rs.fields(k).value = aData[j][k];
alert("after =:"+rs.fields(k).value); //------>值正常
}
alert("after for:"+rs.fields(3).value); //------>值null
rs.Update();
rs.movenext();
}
就剩下修改数据是个比较棘手的问题了。我也觉得代码没错, 但就是有问题!
出了循环就没有值了吗?
rs.fields(3)存在吗?
当小于4列时,rs.fields(3)就不存在了
问题就像你说的,出了循环就没有值了,循环内正常。奇怪, 游标都没动。
我只是为了方便, 没写所有值。
其实我也测试过所有值, 都null
只要将
for(var j=0; j<rs.fields.count; j++){
改为
for(var j=0; j<rs.fields.count-1; j++){
就正确了其实你就是没有认真的检查aData[j][k]的值
for(var k=0; k<aData[j].length; k++){
alert("["+j+','+k+"]"+aData[j][k]);
rs.fields(k).value = aData[j][k];
}
按你的原代码,将会多出一个包括全部列数据的值