Position beim laden der Seite bestimmen

  • C# (ASP)

    Position beim laden der Seite bestimmen

    Hallo zusammen,

    ich bastel derzeit an einem kleinen tool, welches Artikel zu einem Aufrag verbuchen soll. Dafür gibt es eine Klasse Beleg, welche in einer List vom Typ Belegposition die Positionen hält.

    Nun habe ich das Problem, dass ein Artikel ggf. eine Stückliste ist. Das heißt dieser Artikel besteht aus mehreren Artikeln, welche ich nun alle samt einzeln verbuchen möchte. Die Artikel der Stückliste befinden sich in der Position in einer List - wieder vom Typ Belegposition. Die Positionen habe ich mir für einen Auftrag bereits rekursiv zusammen gebastelt. Hier mal eine Übersicht, wie so eine Belegposition aussieht:


    Dabei noch wichtig zu wissen, dass eine Stückliste wiederrum eine Stückliste enthalten kann. Nun möchte ich mir die Artikel anzeigen lassen. Dazu übergebe ich einfach die Belegnummer und die Position.
    auftrag.aspx?auftrag=36101&pos=1

    Wenn es nun ein Artikel ist, dann zeige ich diesen einfach an. Ist der Artikel eine Stückliste, dann lande ich in einer Übersicht über alle Artikel der Stückliste. Hier kann ich nun einen Artikel auswählen, wodurch ich nun auf folgender URL landen würde:
    auftrag.aspx?auftrag=36101&pos=1&stklpos=1

    Dies würde mir nun den ersten Artikel meiner Stückliste für die Position 1 meines Beleges anzeigen.

    Doch wie gehe ich nun am besten vor, um einen Artikel anzuzeigen, der sich in einer Stückliste befindet, die sich nun wieder in einer Stückliste befindet? Es kann theorethisch unbegrenzte Stücklisten in Stücklisten geben, auch wenn es in der Praxis wahrscheinlich spätestens nach 3-4 Stücklisten zum Ende kommen wird.

    Ich suche also eine Möglichkeit über die URL meine Position zu ermitteln, unabhängig von der Anzahl der ineinander verketteten Stücklisten.

    Ein Artikel lässt sich dabei immer eindeutig über die BPOS_N_POS und die StücklistenPositionsId bestimmen.

    Hat Jemand eine Idee, wie ich das am schlausten angehen kann?

    LG Marvin