我希望如此,当在主页上点击链接时,它会将特定的xml文件加载到下一页(该页面称为category-list.apsx)。
此类别列表页面使用Repeater Control方法在页面上显示xml详细信息。我使用了这里显示的例子:
http://www.w3schools.com/aspnet/aspnet_repeater.asp
目前转发器脚本如下:
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
dim mycategories=New DataSet
mycategories.ReadXml(MapPath("categories.xml"))
categories.DataSource=mycategories
categories.DataBind()
end if
end sub
</script>
在做了一些研究后,我发现有人遇到了同样的问题,解决方案是在主页上插入#tags作为链接的一部分(即category-list.apsx#company1results),然后在列表页面上输入一些脚本拿起正确的xml文件:
<script type="text/javascript">
var old_onload = window.onload; // Play it safe by respecting onload handlers set by other scripts.
window.onload=function()
{
var categories = document.location.href.substring(document.location.href.indexOf("#")+1);
loadXMLDoc('XML/'+categories+'.xml');
old_onload();
}
</script>
这来自以下链接:
http://www.hotscripts.com/forums/javascript/45641-solved-specify-xml-file-load-when-click-link.html
如何让这两个脚本相互连接?
答案 0 :(得分:2)
使用查询字符串而不是散列'#'更容易,因为查询字符串将在服务器端发送,因此不需要客户端javascript。
因此,当您调用category-list.apsx?cat = company1results时,您可以使用以下代码在xml文件之间切换:
Public Sub Page_Load()
If Not Page.IsPostBack Then
Dim cat As String = Request.QueryString("cat")
Dim mycategories As DataSet = New DataSet()
mycategories.ReadXml(MapPath(cat + ".xml"))
categories.DataSource = mycategories
categories.DataBind()
End If
End Sub