![]() |
ASP Hilfe wird gebraucht
Hi an Alle
hab mich wieder mal entschlossen meine page zu erweitern und hab gestern angefangen ein profil menü zu erstellen für meine User nun schreibe ich grad den Counterbereich wo sich die user Counterlog ansehen können über ihren counter. so da man meist ned nur 1-30 countereinträge hat sondern 100-1000 undmehr ist alles auf einer seite zu unübersichtlich bzw braucht dann lang zum laden und deswegen würde ich gerne immer nur 30 counterlogs anzeigen lassen hab aber noch keinen schimmer wie das funzt da mal ein kleiner auszug des scriptes Script Auszug Hoffe das ihr meint was ich möchte THX |
Hallo kann mir keiner helfen?
|
Hi!
Willst du überhaut nur 30 Einträge anzeigen, oder nach je 30 Einträgen eine neue Seite beginnen? mfg WB |
je 30 eine neue seite
|
Hi!
Also nur aus dem Kopf, ohne es probiert zu haben: Eine Variable für die Startposition einführen. Beim ersten Aufruf der Seite ist die Startposition 1. Mit der AbsolutePosition-Eigenschaft den Cursor im Recordset auf die Startposition stellen. Du baust in deinen Code eine Schleife ein, die bis 30 zählt. Damit wird das Recordset nicht bis EOF durchlaufen, sondern für 30 Datensätze. Mit RecordCount zählst du die Datensätze und berechnest die Zahl der notwendigen Seiten. Links zu diesen Seiten nach den 30 Datensätzen einfügen. Wenn der User auf den Link zu einer Seite klickt, die passende Startposition einstellen. Die Seite mit der neuen Startposition aufrufen. Da fällt mir ein: Das Recordset darf nur beim 1. Seitenaufruf erstellt werden (am Besten als Snapshot), weil ja inzwischen neue Einträge dazugekommen sein könnten. Noch etwas: Ich glaube AbsolutePosition funktioniert nicht mit jedem Provider. Mit Recordset.CursorLocation = adUseClient sollte es klappen. Gib mir Bescheid, ob du mit diese Idee etwas anfangen kannst. mfg WB |
sorry aber mit dem fachchinesisch kann ich nix anfangen lol
hab asp einfach nur so gelernt ohne irgentetwas also die fachbegriffe sagen mir überhaupt nix sorry :( hast vielleicht irgentwo ein beispiel? PS: versuch mom verzweifelt ein paar guestbooks herunterzuladen und herauszufinden wie die das immer machen mit den seiten |
Hi!
Ich hab mich inzwischen schlau gemacht. Leider unterstützt Jet 4.0 die Eigenschaften AbsolutePosition, AbsolutePage, PageCount und PageSize nicht. Als Workaround könnte man das Recordset in ein Array einlesen (Das geht ziemlich schnell). Damit ist der Zugriff auf eine bestimmten Datensatz wieder möglich. Um eine Beispiel-Anwendung zu programmieren fehlt mir leider die Zeit. Wenn du konkrete Fragen zum Abrufen und Manipulieren der Daten hast, kann ich dir sicher helfen. Für HTML gibt es sicher andere Leute im Forum, die dir weiter helfen können. Noch eine Frage zum Schluß: Womit programmierst du die ASP-Seiten? mfg WB |
ich kann leider mit dem was du sagst ned wirklich was anfangen so gern ich das auch möchte
mit dreamweaver oder wordpad Jet 4 ist ein webspace provider? |
Hi!
Auszug aus deinem Code: "Provider=Microsoft.Jet.OLEDB.4.0;" Als Datenbank wird die Microsoft Jet-Engine verwendet. (Wird auch von Access verwendet) Könnte es sein, daß du den Code nur kopiert hast, und eigentlich nicht verstehst? (Das ist nicht böse gemeint) Du erstellst ein Recordset. Anschließend durchläufst du dieses, und erzeugst für jeden Datensatz eine Zeile in einer HTML-Tabelle. Mein Vorschlag: Du durchläufst das Recordset und schreibst alle Datensätze in ein Array. Das Array ist im Arbeitsspeicher, das Recordset kann wieder geschlossen werden. Über den Index kannst du auf jeden Datensatz in diesem Array zugreifen. Für die 1. Seite verwendest du die Datensätze 0 bis 29. Die werden in die HTML-Tabelle eingelesen, und dem User angezeigt. Wenn der User eine weitere Seite sehen will, holst du die entsprechenden Datensätze. (z. B. Seite 3 ist 60 bis 89) Weiter gehts morgen mfg WB |
Zitat:
und der ausdruck vom script ist schon eine lauffähige version nur zeigt es mir alle datensätze der datenbank und und ich würde das nur gern so umschreiben das immer nur 30 datensätze pro seite angezeit werden |
|
|
Hi!
@JoergStueger Der Link ist wirklich gut. So ungefähr hab ich mir das auch vorgestellt. Die Methode, die Anzahl der Datensätze schon im SQL-Statement zu begrenzen, bringt in vielen Fällen eine bessere Performance und spart Resourcen. Voraussetzung ist ein ID-Feld, das die chronologische Reihenfolge der Datensätze widerspiegelt. In einer Access-DB einfach ein Feld vom Typ "Autowert" verwenden und als Primärschlüssel definieren. Dann gilt: Der jüngste Eintrag hat die höchste ID. @Nightman Wenn du dieses Beispiel verwendest, und dabei Fragen hast, will ich gern versuchen dir weiterzuhelfen. mfg WB |
ja so ungefähr nur das ich ned weiter und zurück will sondern seite 1 2 3 4 .. usw
|
hm und wegem dem autowert in der datenbank das hab ich schon alles
also in meinem fall tabelle: counter und datensatz ist : counterID (autowert)und primärschlüssel an das hab ich schon gedacht wie gesagt es funzt auch schon alles nur will ich noch in seiten unterteile |
Hi!
Das sollte nicht so schwer sein. Wie man die Anzahl der Einträge erhält, ist in dem Beispiel beschrieben. Die Zahl der notwendigen Seiten zu berechnen ist auch kein Problem. Die Erstellung der Link zu den Seiten hab ich zwar nicht im Kopf, wird aber nicht so schwer sein. Die im Beispiel verwendete Prozedur "WritePagingHeaders" kann vermutlich leicht angepasst werden. Die Links mit den Seitennummern sind leicht mit einer For-Next-Schleife zu erstellen. Die ID des 1. gesuchten Datensatzes kann berechnet werden und wird beim Seitenaufruf als Argument übergeben. Ich würde übrigens auch die Links zum Blättern lassen. z. B.: << < 1 2 3 4 > >> Also 1. Seite, vorige Seite, Seiten nach Nr aufrufen, nächste Seite, letzte Seite. Welcher Teil der Änderung macht dir Probleme? Ich kann selber keine Tests machen, weil ich keinen IIS zur Verfügung habe. Aber es sollten nicht allzuviele Versuch notwendig sein, um zum gewünschten Ergebnis zu kommen. mfg WB |
hm ich könnte dir nen testspace anbieten das wäre ned das problem
bin leider im mom ned viel daheim daher kann ich mir das ned wieklich genauer ansehen aber wenn ich zeit hab schau ich es mir genauer an aber lieber wäre es mir den mir jeman ein vorzeige script schreiben würde was ich dan quasi als lernvorlage verwenden kann thx |
*g* Lernvorlage der war gut!
Wenn ich heute Zeit hab, bastle ich das ganze und lass es Dir zukommen! LG Jörg |
Hi!
Wenn du kein fertiges Script bekommst, kann ich dir folgenden Vorschlag machen: - Übernimm das Script, auf das JoergStueger mit seinem Link hinweist. - Passe es an deine DB an (Connection-String, SQL-Statements, ..). Falls nötig helfe ich dir. - Wenn es so funktioniert, wie in dem Artikel beschrieben, melde dich bei mir. - Ich ändere mit dir den Code Schritt für Schritt, bis du dein gewünschtes Ergebnis hast. mfg WB |
ha cool freu mich schon drauf
anpassen sag ich mal ist dann glaub ich sicher nimma das prob das prob is ja eher das ich niergens eine vorlage hab zum gucken wie es ca. aussehen soll ich danke euch für eure hilfe |
OK. Ich warte, bis du dich wieder meldest.
mfg WB |
ik kein prob warte aber noch auf post von "JoergStueger"
:D :lol: :D |
Bin leida nu net dazu gekommen!
Sorry Joerg |
np es is schon mal gut das sich überhaupt wer dazu bereiterkläht sowas zu machen
so wird mir wenigstens geholfen :) |
hm dumme frage aber kann mir wieder mal wer weiterhelfen? würder gern wieder weitermachen :(
|
|
sorry ;(
sag mit bitte bescheid wenns was neues gibt |
so schön langsam fang ich zum verzweifeln an
helft mir bitte |
Hi!
Mein Angebot steht noch. mfg WB |
ja aber ich brauch erst das script vom JoergStueger
|
Hi!
Wie in schon gesagt, verwende das hier: Ist wirklich gut. Beschreibung unter http://www.aspheute.com/artikel/20000403.htm Die Datenbankverbindung und das SQL-Statement mußt du anpassen. Wenn es läuft melde dich, ich bin ab ca 20:00 wieder da. mfg WB |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 15:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag