对于xml数据岛绑定时的超链接处理方法
在写地图空间搜索的时候,用ajax返回的数据结果,除了要在地图上标点之外 还需要 用传统的表格方式罗列,并且可以点击察看信息,因为需要对返回结果的 处理足够灵活,所以不能在js当中写死格式。这里用了xml数据岛的方式(系统是 只需要考虑IE)只把要用到xml数据信息返回,具体怎么在html页面上布局可以由 其它开发人员自己订制。
下面代码去掉了ajax的部分,只简单的演示如何生成一个xml数据岛,以及如 何和html表格绑定,并显示出相关的链接信息。其中链接的href内容可以保存在 xml数据中,用datafld属性来处理。
<html xmlns="">
<head>
<title>XML数据岛</title>
</head>
<script type="text/jscript">...
//获取xml,实际应用中大多是ajax异步获取的
function getData()
...{
var xmlData="<xml ID="xmlData"><root>";
for(var i=0;i<5;i++)
...{
try
...{
var id="Name"+i;
var Type="Type"+i;
xmlData+="<METADATA><Name>"+id+"</Name> ;<Type>"+Type+"</Type><Href>javascript:aler t('"+id+"')</Href></METADATA>";
pointIndex++;
}
catch(e)
...{
}
}
xmlData+="</root></xml>";
document.all.xmlDataPanel.innerHTML=xmlData;
}
//简单的添加xml信息
function addData()
...{
var xmlData= document.all.xmlDataPanel.innerHTML;
xmlData=xmlData.replace ("</root></xml>","");
xmlData+="<METADATA><Name>newName</Name><Type >newType</Type><Href>javascript:alert('newName') </Href></METADATA>";
xmlData+="</root></xml>";
document.all.xmlDataPanel.innerHTML=xmlData;
}
</script>
<body>
<button onclick="javascript:getData();">获取数据 </button>
<button onclick="javascript:addData();">添加数据 </button>
<div id="xmlDataPanel">
</div>
<div style="overflow: scroll; height: 180;width:180" align="center">
<div align="left">
<!--绑定,超链接的地方用 datafld属性,href的值也可以保存在 xml数据岛当中,比较灵活,可以使js函数或者一个url地址-->
<table datasrc="#xmlData" border="1">
<tr>
<td>
<a datafld="Href"><span datafld="Name"></span></a>
</td>
<td>
<span datafld="Type"></span>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
爱电脑 就爱www.zzzyk.com 电脑知识网