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

これら 2 つのスクリプトを相互に接続するにはどうすればよいですか?

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 に答える