0

我想要它,所以当在主页上单击链接时,它会将特定的 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

我怎样才能让这两个脚本相互连接?

4

1 回答 1

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
于 2012-08-30T10:19:47.530 回答