<body>
<table width="100%" height="372" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="TABLEID"> </td>
</tr>
</table><XML id="XMLRESULT">
<?xml version="1.0" encoding="GB2312"?>
<Mydata>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
</Mydata>
</XML><input type="button" value="ok" onclick="mm()"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function mm()
{
var x = document.all.XMLRESULT.XMLDocument;
x.setProperty("SelectionLanguage", "XPath");
var node = x.selectSingleNode("/Mydata/结果"); var s = "<table border='1' cellpadding='0' cellspacing='0' id='tblresult' datasrc='#XMLRESULT'>";
if(node)
{
var a = [];
for(var i=0; i<node.childNodes.length; i++)
{
if(node.childNodes[i].nodeType==1) a[a.length] = node.childNodes[i].nodeName;
}
if(a.length>0)
{
s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td>"+ a[i] +"</td>";
s += "</tr>"; s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td><div datafld='"+ a[i] +"'></div></td>";
s += "</tr>";
}
}
s += "</table>";
document.all.TABLEID.innerHTML = s;
}
//-->
</SCRIPT>
<table width="100%" height="372" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="TABLEID"> </td>
</tr>
</table><XML id="XMLRESULT">
<?xml version="1.0" encoding="GB2312"?>
<Mydata>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
</Mydata>
</XML><input type="button" value="ok" onclick="mm()"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function mm()
{
var x = document.all.XMLRESULT.XMLDocument;
x.setProperty("SelectionLanguage", "XPath");
var node = x.selectSingleNode("/Mydata/结果"); var s = "<table border='1' cellpadding='0' cellspacing='0' id='tblresult' datasrc='#XMLRESULT'>";
if(node)
{
var a = [];
for(var i=0; i<node.childNodes.length; i++)
{
if(node.childNodes[i].nodeType==1) a[a.length] = node.childNodes[i].nodeName;
}
if(a.length>0)
{
s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td>"+ a[i] +"</td>";
s += "</tr>"; s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td><div datafld='"+ a[i] +"'></div></td>";
s += "</tr>";
}
}
s += "</table>";
document.all.TABLEID.innerHTML = s;
}
//-->
</SCRIPT>
解决方案 »
- 我是初学者,请教各位大师们
- [BlueDestiny] 出道javascript的题。
- 求Javascript控制页面退出时(仅关闭窗口)弹出收藏夹的对话框
- 关于input type=file 取消路径问题
- 求助:select宽度问题
- 如何写一个函数以弹出file按钮的那个框?
- 如何跳转到指定页面?
- 请教javascript高手,我初次接触javascript,这个代码是书上的,为什么执行不了
- document.location问题,谁知道?
- JavaScript:有Radio A、Radio B和Text C、Text D;选择Radio A时,让Text C有效,Text D无效并清空;选择Radio B时,则Text C无效并清空,Text
- 求助!关于文字的无缝循环滚动的脚本
- 菜单联动问题!!!!!!!!!!!!!1
这种用INNERHTML的模式我可以用,现在问题是我想使用纯对象模式去做,因为有可能出现在设定表格后对某一列的DATAFLD进行修改的情况。这种情况下用INNERHTML就不行了,所以想一开始就用对象模式动态的设定DATAFLD
用下面两句替代:mySpan.datasrc = "#XMLRESULT"
mySpan.Datafld = cstr(myRec.Fields(i).name)(具体的参考msdn中<span> datasrc 和 datafld 属性设置)
但不能实现要求。
具体是这样的。在只写mySpan.Datafld=cstr(myRec.Fields(i).name)这句的时候,不起任何作用。
在添加了mySpan.datasrc = "#XMLRESULT"这句的时候,实际上是给SPAN另外设置了datasrc,这时候mySpan虽然起作用了,但不是承继至table的datasrc。这样表格就只会显示数据岛的一条记录,而不会有多少记录表格就显示多少条了。
<body><table width="100%" height="372" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="TABLEID"> </td>
</tr>
</table><XML id="XMLRESULT">
<?xml version="1.0" encoding="GB2312"?>
<Mydata>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
</Mydata>
</XML><input type="button" value="old" onclick="mm()"/>
<input type="button" value="new" onclick="mm2()"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function mm()
{
var x = document.all.XMLRESULT.XMLDocument;
x.setProperty("SelectionLanguage", "XPath");
var node = x.selectSingleNode("/Mydata/结果"); var s = "<table border='1' cellpadding='0' cellspacing='0' id='tblresult' datasrc='#XMLRESULT'>";
if(node)
{
var a = [];
for(var i=0; i<node.childNodes.length; i++)
{
if(node.childNodes[i].nodeType==1) a[a.length] = node.childNodes[i].nodeName;
}
if(a.length>0)
{
s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td>"+ a[i] +"</td>";
s += "</tr>"; s += "<tr>";
for(var i=0; i<a.length; i++) s += "<td><div datafld='"+ a[i] +"'></div></td>";
s += "</tr>";
}
}
s += "</table>";
document.all.TABLEID.innerHTML = s;
}function mm2()
{ var x = document.all.XMLRESULT.XMLDocument;
x.setProperty("SelectionLanguage", "XPath");
var node = x.selectSingleNode("/Mydata/结果"); var tab = document.createElement("TABLE");
with(tab)
{
border = "1";
cellPadding=0;
cellSpacing=0;
id="tblresult";
}
document.all.TABLEID.appendChild(tab);
if(node)
{
var a = [];
for(var i=0; i<node.childNodes.length; i++)
{
if(node.childNodes[i].nodeType==1) a[a.length] = node.childNodes[i].nodeName;
}
if(a.length>0)
{
var tr = tab.insertRow(tab.rows.length);
for(var i=0; i<a.length; i++)
{
var td = tr.insertCell(tr.cells.length);
td.innerHTML = a[i];
} var tr = tab.insertRow(tab.rows.length);
for(var i=0; i<a.length; i++)
{
var td = tr.insertCell(tr.cells.length);
var div = document.createElement("DIV");
div.dataFld = a[i];
td.appendChild(div);
} tab.dataSrc='#XMLRESULT';
}
}
}
//-->
</SCRIPT>
</body></html>
<TD id=MyThTr1Td bgColor=#000000 colSpan=7 height=2></TD></TR>
<TR id=MYThTr2 bgColor=#ffffff height=18>
<TD id=MyThTr2Td1>客户号</TD>
<TD id=MyThTr2Td5 width=1 bgColor=#000000></TD>
<TD id=MyThTr2Td2>账号</TD>
<TD id=MyThTr2Td6 width=1 bgColor=#000000></TD>
<TD id=MyThTr2Td3>户名</TD>
<TD id=MyThTr2Td7 width=1 bgColor=#000000></TD>
<TD id=MyThTr2Td4>名称</TD></TR>
<TR id=MYThTr3>
<TD id=MyThTr3Td bgColor=#000000 colSpan=7 height=1></TD></TR>
<TR id=MYTbTr1 height=18>
<TD id=MyTbTr1Td1><SPAN dataFld=客户号></SPAN></TD>
<TD id=MyTbTr1Td5 width=1 bgColor=#000000></TD>
<TD id=MyTbTr1Td2><SPAN dataFld=账号></SPAN></TD>
<TD id=MyTbTr1Td6 width=1 bgColor=#000000></TD>
<TD id=MyTbTr1Td3><SPAN dataFld=户名></SPAN></TD>
<TD id=MyTbTr1Td7 width=1 bgColor=#000000></TD>
<TD id=MyTbTr1Td4><SPAN dataFld=名称></SPAN></TD></TR></THEAD><!--remove from script!--><TBODY id=myTB></TBODY>
<TFOOT id=myTF>
<TR id=MYTfTr1>
<TD id=MyTfTr1Td bgColor=#000000 colSpan=7 height=2></TD></TR></TFOOT></TABLE>datafld不能继承datasrc,是因为你的table和tr、td之间多了个<THEAD id=myTH>这个东东,正确的应该是<table datasrc=".."><tr><td datafld="..">
我把table与tr、td间的这个<HHEAD>去掉后就没问题了,对了,别忘了把“mySpan.Datafld = myRec.Fields(i).value”改成 mySpan.Datafld = cstr(myRec.Fields(i).name)。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="vbscript">
Private sub mytest()
set myaa = document.all("TABLEID")
set myTable = document.createElement("TABLE")
with myTable
.border = "0"
.cellpadding = "0"
.cellspacing = "0"
.id = "tblresult"
.datasrc = "#XMLRESULT"
.DATAPAGESIZE = "21"
end with
myaa.appendChild(myTable)
set myTHead = document.CreateElement("tHead")
myTHead.id = "myTH"
myTable.appendChild(myTHead)
set myXML = document.all("XMLRESULT")
Set myRec = myXML.RecordSet
myRec.MoveFirst
myColCu = (myRec.Fields.Count-1)*2-1
set myTr = document.CreateElement("Tr")
myTr.Id = "MYThTr1"
myTHead.appendChild(myTr)
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyThTr1Td"
.bgColor = "#000000"
.height = "2"
.colspan = myColCu
end with
myTr.appendChild(MyTd)
set myTr = document.CreateElement("Tr")
with myTr
.bgColor = "#ffffff"
.Id = "MYThTr2"
.height = "18"
end with
myTHead.appendChild(myTr)
for i=0 to myRec.Fields.Count-2
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyThTr2Td"&cStr(i+1)
end with
set myText = document.CreateTextNode(myRec.Fields(i).name)
myTd.appendChild(myText)
myTr.appendChild(MyTd)
if i <> myRec.Fields.Count-2 then
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyThTr2Td"&cStr(i+1+myRec.Fields.Count-1)
.bgColor = "#000000"
.width = "1"
end with
myTr.appendChild(MyTd)
end if
next
set myTr = document.CreateElement("Tr")
myTr.Id = "MYThTr3"
myTHead.appendChild(myTr)
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyThTr3Td"
.bgColor = "#000000"
.height = "1"
.colspan = myColCu
end with
myTr.appendChild(MyTd)
set myTBody = document.CreateElement("tBody")
myTBody.id = "myTB"
myTable.appendChild(myTBody) set myTr = document.CreateElement("Tr")
with myTr
.Id = "MYTbTr1"
.height = "18"
end with
' msgbox myTBody.innerHTML
for i=0 to myRec.Fields.Count-2
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyTbTr1Td"&cStr(i+1)
end with
set mySpan = document.CreateElement("SPAN")
mySpan.Datafld = myRec.Fields(i).name
' if i=1 then
' mySpan.Datafld = "客户号"
' end if
' if i=2 then
' mySpan.Datafld = "账号"
' end if
' if i=3 then
' mySpan.Datafld = "户名"
' end if 'msgbox myRec.Properties(i)
myTd.appendChild(mySpan)
myTr.appendChild(MyTd)
' msgbox myTr.innerHTML if i <> myRec.Fields.Count-2 then
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyTbTr1Td"&cStr(i+1+myRec.Fields.Count-1)
.bgColor = "#000000"
.width = "1"
end with
myTr.appendChild(myTd)
'msgbox myTr.innerHTML
end if
next
myTBody.appendChild(myTr)
msgbox myTBody.innerHTML
'myTBody.appendChild(myTr)
'msgbox myTr.innerHTML set myTFoot = document.CreateElement("tFoot")
myTFoot.id = "myTF"
myTable.appendChild(myTFoot) set myTr = document.CreateElement("Tr")
with myTr
.Id = "MYTfTr1"
end with
myTFoot.appendChild(myTr)
set myTd = document.CreateElement("Td")
with myTd
.Id = "MyTfTr1Td"
.bgColor = "#000000"
.height = "2"
.colspan = myColCu
end with
myTr.appendChild(MyTd)
msgbox document.all("TABLEID").innerHTML
myTable.refresh() end sub
</script>
</head><body>
<table width="100%" height="372" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="TABLEID"> </td>
</tr>
</table><form name="form1" method="post" action="">
<input type="button" name="Submit" value="按钮" onclick="mytest()">
</form>
</body>
</html><XML id="XMLRESULT">
<?xml version="1.0" encoding="GB2312"?>
<Mydata>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
</Mydata>
</XML>
<body><table width="100%" height="372" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="TABLEID"> </td>
</tr>
</table><XML id="XMLRESULT">
<?xml version="1.0" encoding="GB2312"?>
<Mydata>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
<结果>
<客户号>10042</客户号>
<账号>13849956</账号>
<户名>福建省福州市鼓楼区XX公司</户名>
<名称>dddd</名称>
</结果>
</Mydata>
</XML><input type="button" value="OK" onclick="mm()"/><SCRIPT LANGUAGE="JavaScript">
<!--
function mm()
{ var x = document.all.XMLRESULT.XMLDocument;
x.setProperty("SelectionLanguage", "XPath");
var node = x.selectSingleNode("/Mydata/结果"); var tab = document.createElement("TABLE");
with(tab)
{
border = "1";
cellPadding=0;
cellSpacing=0;
id="tblresult";
}
var head = document.createElement("THEAD");
tab.appendChild(head);
document.all.TABLEID.appendChild(tab);
if(node)
{
var a = [];
for(var i=0; i<node.childNodes.length; i++)
{
if(node.childNodes[i].nodeType==1) a[a.length] = node.childNodes[i].nodeName;
}
if(a.length>0)
{
var tr = head.insertRow(tab.rows.length);
for(var i=0; i<a.length; i++)
{
var td = tr.insertCell(tr.cells.length);
td.innerHTML = a[i];
} var tr = tab.insertRow(tab.rows.length);
for(var i=0; i<a.length; i++)
{
var td = tr.insertCell(tr.cells.length);
var div = document.createElement("DIV");
div.dataFld = a[i];
td.appendChild(div);
} tab.dataSrc='#XMLRESULT';
}
}
}
//-->
</SCRIPT>
</body></html>