Asp Paging Problem

Discussion in 'C#' started by maksinx, Sep 12, 2008.

  1. #1
    Hello everyone,
    I have created below page but i am having difficulty to run it through as the pages links that i have created seems dont work.
    I am using dreamweaver 8 .
    when i click on the post links on my admin page, the links send me to the editpost page however when i click on the previous or next link to see the other posts nothing happens.

    can anyone help me how to avoid this happening.

    Thanks in advance
    Maksin


    quote
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!--#include file="../Connections/connBlog.asp" -->
    <%
    ' *** Edit Operations: declare variables

    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd

    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId

    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i

    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
    MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If

    ' boolean to abort record edit
    MM_abortEdit = false

    ' query string to execute
    MM_editQuery = ""
    %>
    <%
    ' *** Update Record: set variables

    If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

    MM_editConnection = MM_connBlog_STRING
    MM_editTable = "tblBlog"
    MM_editColumn = "intPostID"
    MM_recordId = "" + Request.Form("MM_recordId") + ""
    MM_editRedirectUrl = "editpost.asp"
    MM_fieldsStr = "txtPostTitle|value|dtePostDate|value|bitPostShow|value|intCatID|value|intPostBy|value|memPostContent|value"
    MM_columnsStr = "txtPostTitle|',none,''|dtePostDate|',none,NULL|bitPostShow|none,1,0|intCatID|none,none,NULL|intPostBy|none,none,NULL|memPostContent|',none,''"

    ' create the MM_fields and MM_columns arrays
    MM_fields = Split(MM_fieldsStr, "|")
    MM_columns = Split(MM_columnsStr, "|")

    ' set the form values
    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
    Next

    ' append the query string to the redirect URL
    If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
    MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
    End If

    End If
    %>
    <%
    ' *** Update Record: construct a sql update statement and execute it

    If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

    ' create the sql update statement
    MM_editQuery = "update " & MM_editTable & " set "
    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
    MM_formVal = MM_emptyVal
    Else
    If (MM_altVal <> "") Then
    MM_formVal = MM_altVal
    ElseIf (MM_delim = "'") Then ' escape quotes
    MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
    Else
    MM_formVal = MM_delim + MM_formVal + MM_delim
    End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
    MM_editQuery = MM_editQuery & ","
    End If
    MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
    Next
    MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

    If (Not MM_abortEdit) Then
    ' execute the update
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
    Response.Redirect(MM_editRedirectUrl)
    End If
    End If

    End If
    %>
    <%
    Dim rsPost__MMColParam
    rsPost__MMColParam = "1"
    If (Request.QueryString("id") <> "") Then
    rsPost__MMColParam = Request.QueryString("id")
    End If
    %>
    <%
    ' *** Restrict Access To Page: Grant or deny access to this page
    MM_authorizedUsers="1"
    MM_authFailedURL="default.asp"
    MM_grantAccess=false
    If Session("MM_Username") <> "" Then
    If (false Or CStr(Session("MM_UserAuthorization"))="") Or _
    (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
    End If
    End If
    If Not MM_grantAccess Then
    MM_qsChar = "?"
    If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
    MM_referrer = Request.ServerVariables("URL")
    if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
    MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
    Response.Redirect(MM_authFailedURL)
    End If
    %>
    <%
    Dim rsPost
    Dim rsPost_numRows

    Set rsPost = Server.CreateObject("ADODB.Recordset")
    rsPost.ActiveConnection = MM_connBlog_STRING
    rsPost.Source = "SELECT * FROM tblBlog WHERE intPostID = " + Replace(rsPost__MMColParam, "'", "''") + " ORDER BY dtePostDate DESC"
    rsPost.CursorType = 0
    rsPost.CursorLocation = 2
    rsPost.LockType = 1
    rsPost.Open()

    rsPost_numRows = 0
    %>
    <%
    Dim rsCategories
    Dim rsCategories_numRows

    Set rsCategories = Server.CreateObject("ADODB.Recordset")
    rsCategories.ActiveConnection = MM_connBlog_STRING
    rsCategories.Source = "SELECT intCatID, txtCatName FROM tblCategories ORDER BY intCatSort ASC"
    rsCategories.CursorType = 0
    rsCategories.CursorLocation = 2
    rsCategories.LockType = 1
    rsCategories.Open()

    rsCategories_numRows = 0
    %>
    <%
    Dim rsUsers
    Dim rsUsers_numRows

    Set rsUsers = Server.CreateObject("ADODB.Recordset")
    rsUsers.ActiveConnection = MM_connBlog_STRING
    rsUsers.Source = "SELECT intUserID, txtNickName FROM tblUsers ORDER BY txtNickName ASC"
    rsUsers.CursorType = 0
    rsUsers.CursorLocation = 2
    rsUsers.LockType = 1
    rsUsers.Open()

    rsUsers_numRows = 0
    %>
    <%
    ' *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

    Dim rsPost_total
    Dim rsPost_first
    Dim rsPost_last

    ' set the record count
    rsPost_total = rsPost.RecordCount

    ' set the number of rows displayed on this page
    If (rsPost_numRows < 0) Then
    rsPost_numRows = rsPost_total
    Elseif (rsPost_numRows = 0) Then
    rsPost_numRows = 1
    End If

    ' set the first and last displayed record
    rsPost_first = 1
    rsPost_last = rsPost_first + rsPost_numRows - 1

    ' if we have the correct record count, check the other stats
    If (rsPost_total <> -1) Then
    If (rsPost_first > rsPost_total) Then
    rsPost_first = rsPost_total
    End If
    If (rsPost_last > rsPost_total) Then
    rsPost_last = rsPost_total
    End If
    If (rsPost_numRows > rsPost_total) Then
    rsPost_numRows = rsPost_total
    End If
    End If
    %>
    <%
    Dim MM_paramName
    %>
    <%
    ' *** Move To Record and Go To Record: declare variables

    Dim MM_rs
    Dim MM_rsCount
    Dim MM_size
    Dim MM_uniqueCol
    Dim MM_offset
    Dim MM_atTotal
    Dim MM_paramIsDefined

    Dim MM_param
    Dim MM_index

    Set MM_rs = rsPost
    MM_rsCount = rsPost_total
    MM_size = rsPost_numRows
    MM_uniqueCol = "intPostID"
    MM_paramName = "id"
    MM_offset = 0
    MM_atTotal = false
    MM_paramIsDefined = false
    If (MM_paramName <> "") Then
    MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
    End If
    %>
    <%
    ' *** Move To Specific Record: handle detail parameter

    If (MM_paramIsDefined And MM_rsCount <> 0) Then

    ' get the value of the parameter
    MM_param = Request.QueryString(MM_paramName)

    ' find the record with the unique column value equal to the parameter value
    MM_offset = 0
    Do While (Not MM_rs.EOF)
    If (CStr(MM_rs.Fields.Item(MM_uniqueCol).Value) = MM_param) Then
    Exit Do
    End If
    MM_offset = MM_offset + 1
    MM_rs.MoveNext
    Loop

    ' if not found, set the number of records and reset the cursor
    If (MM_rs.EOF) Then
    If (MM_rsCount < 0) Then
    MM_rsCount = MM_offset
    End If
    If (MM_size < 0 Or MM_size > MM_offset) Then
    MM_size = MM_offset
    End If
    MM_offset = 0

    ' reset the cursor to the beginning
    If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
    Else
    MM_rs.Close
    MM_rs.Open
    End If
    End If

    End If
    %>
    <%
    ' *** Move To Record: handle 'index' or 'offset' parameter

    if (Not MM_paramIsDefined And MM_rsCount <> 0) then

    ' use index parameter if defined, otherwise use offset parameter
    MM_param = Request.QueryString("index")
    If (MM_param = "") Then
    MM_param = Request.QueryString("offset")
    End If
    If (MM_param <> "") Then
    MM_offset = Int(MM_param)
    End If

    ' if we have a record count, check if we are past the end of the recordset
    If (MM_rsCount <> -1) Then
    If (MM_offset >= MM_rsCount Or MM_offset = -1) Then ' past end or move last
    If ((MM_rsCount Mod MM_size) > 0) Then ' last page not a full repeat region
    MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
    Else
    MM_offset = MM_rsCount - MM_size
    End If
    End If
    End If

    ' move the cursor to the selected record
    MM_index = 0
    While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
    MM_rs.MoveNext
    MM_index = MM_index + 1
    Wend
    If (MM_rs.EOF) Then
    MM_offset = MM_index ' set MM_offset to the last possible record
    End If

    End If
    %>
    <%
    ' *** Move To Record: if we dont know the record count, check the display range

    If (MM_rsCount = -1) Then

    ' walk to the end of the display range for this page
    MM_index = MM_offset
    While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
    MM_rs.MoveNext
    MM_index = MM_index + 1
    Wend

    ' if we walked off the end of the recordset, set MM_rsCount and MM_size
    If (MM_rs.EOF) Then
    MM_rsCount = MM_index
    If (MM_size < 0 Or MM_size > MM_rsCount) Then
    MM_size = MM_rsCount
    End If
    End If

    ' if we walked off the end, set the offset based on page size
    If (MM_rs.EOF And Not MM_paramIsDefined) Then
    If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
    If ((MM_rsCount Mod MM_size) > 0) Then
    MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
    Else
    MM_offset = MM_rsCount - MM_size
    End If
    End If
    End If

    ' reset the cursor to the beginning
    If (MM_rs.CursorType > 0) Then
    MM_rs.MoveFirst
    Else
    MM_rs.Requery
    End If

    ' move the cursor to the selected record
    MM_index = 0
    While (Not MM_rs.EOF And MM_index < MM_offset)
    MM_rs.MoveNext
    MM_index = MM_index + 1
    Wend
    End If
    %>
    <%
    ' *** Move To Record: update recordset stats

    ' set the first and last displayed record
    rsPost_first = MM_offset + 1
    rsPost_last = MM_offset + MM_size

    If (MM_rsCount <> -1) Then
    If (rsPost_first > MM_rsCount) Then
    rsPost_first = MM_rsCount
    End If
    If (rsPost_last > MM_rsCount) Then
    rsPost_last = MM_rsCount
    End If
    End If

    ' set the boolean used by hide region to check if we are on the last record
    MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
    %>
    <%
    ' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

    Dim MM_keepNone
    Dim MM_keepURL
    Dim MM_keepForm
    Dim MM_keepBoth

    Dim MM_removeList
    Dim MM_item
    Dim MM_nextItem

    ' create the list of parameters which should not be maintained
    MM_removeList = "&index="
    If (MM_paramName <> "") Then
    MM_removeList = MM_removeList & "&" & MM_paramName & "="
    End If

    MM_keepURL=""
    MM_keepForm=""
    MM_keepBoth=""
    MM_keepNone=""

    ' add the URL parameters to the MM_keepURL string
    For Each MM_item In Request.QueryString
    MM_nextItem = "&" & MM_item & "="
    If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
    End If
    Next

    ' add the Form variables to the MM_keepForm string
    For Each MM_item In Request.Form
    MM_nextItem = "&" & MM_item & "="
    If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
    End If
    Next

    ' create the Form + URL string and remove the intial '&' from each of the strings
    MM_keepBoth = MM_keepURL & MM_keepForm
    If (MM_keepBoth <> "") Then
    MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
    End If
    If (MM_keepURL <> "") Then
    MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1)
    End If
    If (MM_keepForm <> "") Then
    MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
    End If

    ' a utility function used for adding additional parameters to these strings
    Function MM_joinChar(firstItem)
    If (firstItem <> "") Then
    MM_joinChar = "&"
    Else
    MM_joinChar = ""
    End If
    End Function
    %>
    <%
    ' *** Move To Record: set the strings for the first, last, next, and previous links

    Dim MM_keepMove
    Dim MM_moveParam
    Dim MM_moveFirst
    Dim MM_moveLast
    Dim MM_moveNext
    Dim MM_movePrev

    Dim MM_urlStr
    Dim MM_paramList
    Dim MM_paramIndex
    Dim MM_nextParam

    MM_keepMove = MM_keepBoth
    MM_moveParam = "index"

    ' if the page has a repeated region, remove 'offset' from the maintained parameters
    If (MM_size > 1) Then
    MM_moveParam = "offset"
    If (MM_keepMove <> "") Then
    MM_paramList = Split(MM_keepMove, "&")
    MM_keepMove = ""
    For MM_paramIndex = 0 To UBound(MM_paramList)
    MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
    If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
    MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
    End If
    Next
    If (MM_keepMove <> "") Then
    MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
    End If
    End If
    End If

    ' set the strings for the move to links
    If (MM_keepMove <> "") Then
    MM_keepMove = Server.HTMLEncode(MM_keepMove) & "&"
    End If

    MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="

    MM_moveFirst = MM_urlStr & "0"
    MM_moveLast = MM_urlStr & "-1"
    MM_moveNext = MM_urlStr & CStr(MM_offset + MM_size)
    If (MM_offset - MM_size < 0) Then
    MM_movePrev = MM_urlStr & "0"
    Else
    MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
    End If
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Edit Post</title>
    </head>

    <body>
    <h2>Edit Post</h2>
    <p><a href="home.asp">Posts</a> | <a href="logout.asp">Logout </a></p>
    <p>First <a href="<%=MM_moveFirst%>">First</A> | Previous <a href="<%=MM_movePrev%>">Previous</A> | Next <a href="<%=MM_moveNext%>">Next</A> | </p>
    <form method="post" action="<%=MM_editAction%>" name="form1">
    <table>
    <tr valign="baseline">
    <td nowrap align="right">Post Title:</td>
    <td><input type="text" name="txtPostTitle" value="<%=(rsPost.Fields.Item("txtPostTitle").Value)%>" size="32">
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Post Date:</td>
    <td><input type="text" name="dtePostDate" value="<%=(rsPost.Fields.Item("dtePostDate").Value)%>" size="32">
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Show Post:</td>
    <td><input type="checkbox" name="bitPostShow" value=1 <%If (CStr(rsPost.Fields.Item("bitPostShow").Value) = CStr("True")) Then Response.Write("checked='checked'") : Response.Write("")%>>
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Category:</td>
    <td><select name="intCatID">
    <%
    While (NOT rsCategories.EOF)
    %>
    <option value="<%=(rsCategories.Fields.Item("intCatID").Value)%>" <%If (Not isNull(rsPost.Fields.Item("intCatID").Value)) Then If (CStr(rsCategories.Fields.Item("intCatID").Value) = CStr(rsPost.Fields.Item("intCatID").Value)) Then Response.Write("selected='selected'") : Response.Write("")%> ><%=(rsCategories.Fields.Item("txtCatName").Value)%></option>
    <%
    rsCategories.MoveNext()
    Wend
    If (rsCategories.CursorType > 0) Then
    rsCategories.MoveFirst
    Else
    rsCategories.Requery
    End If
    %>
    </select>
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Posted By:</td>
    <td><select name="intPostBy">
    <%
    While (NOT rsUsers.EOF)
    %>
    <option value="<%=(rsUsers.Fields.Item("intUserID").Value)%>" <%If (Not isNull(rsPost.Fields.Item("intPostBy").Value)) Then If (CStr(rsUsers.Fields.Item("intUserID").Value) = CStr(rsPost.Fields.Item("intPostBy").Value)) Then Response.Write("selected='selected'") : Response.Write("")%> ><%=(rsUsers.Fields.Item("txtNickName").Value)%></option>
    <%
    rsUsers.MoveNext()
    Wend
    If (rsUsers.CursorType > 0) Then
    rsUsers.MoveFirst
    Else
    rsUsers.Requery
    End If
    %>
    </select>
    </td>
    </tr>
    <tr>
    <td nowrap align="right" valign="top">Content:</td>
    <td valign="baseline"><textarea name="memPostContent" cols="50" rows="5"><%=(rsPost.Fields.Item("memPostContent").Value)%></textarea>
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right"> </td>
    <td><input type="submit" value="Update Post">
    </td>
    </tr>
    </table>
    <input type="hidden" name="MM_update" value="form1">
    <input type="hidden" name="MM_recordId" value="<%= rsPost.Fields.Item("intPostID").Value %>">
    </form>
    <p> </p>
    <p> </p>
    </body>
    </html>
    <%
    rsPost.Close()
    Set rsPost = Nothing
    %>
    <%
    rsCategories.Close()
    Set rsCategories = Nothing
    %>
    <%
    rsUsers.Close()
    Set rsUsers = Nothing
    %>

    unquote
     
    maksinx, Sep 12, 2008 IP