Ways to get Alphabetical Paging for your ASP scripts
I did it a somewhat complicated way the first time. But there is an easier way.
First, the complicated way.
|
I created a new table called "LETTERS" with a field called "ABC" with a record for each letter of the alphabet. When this table is displayed, each letter is hyperlinked to the list of records that have the matching letter in their ALPHA field.
However, for NEW uploads, this would have to be automated. So I set it up so
that when users upload a new file, the filename goes into the database as part
of the upload and then there is a redirection to the edit.asp script that opens
the newly created record. Inside the edit page code, I inserted the following
bit of code (by Scott Campbell) that I have found so useful for so many
different applications:
dim strFileName, str3, strExt
strFileName = Request.Form("x_TITLE")
'Getting the filename from our database and setting the string contents.
intHowLong = Len(strFileName) 'Getting the number of character contained within
the filename.
str3 = intHowLong - intHowLong +1 'Subtracting the number of characters then
adding 1. This is effectively removing the all but one letter.
strAlpha = Left(strFilename, str3) 'Isolating the first letter of the record
title, the horse's name.
'response.write strAlpha
' Get fields from form
x_ALPHA = strAlpha
x_FILE = Request.Form("x_FILE")
x_SIZE = Request.Form("x_SIZE")
x_DATE = Request.Form("x_DATE")
x_TITLE = Request.Form("x_TITLE")
x_UPLOADBY = Request.Form("x_UPLOADBY")
x_REG_NO = Request.Form("x_REG_NO")
-----------------
An EASIER way to do this without so much messing with the database would be to use the code in this manner on the page of files listed by one letter of the alphabet.
EXAMPLES:
With the method above:
http://quarter-horse-times.com/pedigrees/QHT_RECORDSlist.asp?alpha=M
With the simpler method below:
http://quarter-horse-times.com/pedigrees/QHT_RECORDSlist2.asp?alpha=M
This code is used in QHT_RECORDSlist2.asp:
' Load Key for record
key = rs("ID")
x_ID = rs("ID")
x_FILE = rs("FILE")
x_SIZE = rs("SIZE")
x_DATE = rs("DATE")
x_TITLE = rs("TITLE")
x_UPLOADBY = rs("UPLOADBY")
x_REG_NO = rs("REG_NO")
dim strFileName, str3, strExt
strFileName = rs("TITLE")'Getting the title from our database and setting the
string contents.
intHowLong = Len(strFileName) 'Getting the number of characters contained within
the title content.
str3 = intHowLong - intHowLong +1 'Subtracting the number of characters then
adding 1. This is effectively removing the all but one letter.
strAlpha = Left(strFilename, str3) 'Isolating the first letter of the record
title, the horse's name.
'response.write strAlpha
x_ALPHA = strAlpha'making the first letter of the Title field the letter by
which the records are filtered when matched to the querystring alpha=M or
whatever
-------
The SQL for the list page looks something like this:
SELECT * FROM [RECORDS] WHERE ([ALPHA]='M') ORDER BY [TITLE] ASC
Of course, the actual code would be something like:
dim strAlpha
strAlpha = request.querystring("alpha")'tells which letter to sort by
"SELECT * FROM [RECORDS] WHERE [ALPHA]='"& strAlpha &"'"&" ORDER BY
[TITLE] ASC"
I have the Main
Alphabetical List in a database table, but it could just as well be a static
page. My hyperlinks look like this:
<a href="<% key = rs("ID") : If Not IsNull(key) Then Response.Write "QHT_RECORDSlist.asp?alpha="&
x_ABC & "" End If %>"><b><font size="3"><%= x_ABC%></font></b></a>
This would work just as well (static links):
<a href="QHT_RECORDSlist.asp?alpha=M"><b><font size="3">M</a>
M
N