【问题标题】:Paging and saving the values of checkboxes分页和保存复选框的值
【发布时间】:2011-07-04 06:54:04
【问题描述】:

我正在使用分页,它使用存储过程按字母过滤。当我按字母过滤提交表单时,我需要保存复选框的值。我有一个与此类似的previous question,效果很好,但我希望能够保留我的存储过程。

存储过程:

ALTER PROCEDURE [dbo].[A_Page_Paging]
@selected_Char char(1) = null,
@permissionID int = null
as
if @permissionID = ''
    if @selected_Char = '#'
            select * from A_Page where P_Description like '[^a-z]%'
    else if @selected_Char = '!'
            select * from A_Page
            order by P_Description
    else
            select * from A_Page where P_Description like @selected_Char + '%'
else
    select P_PageID, P_Name, P_Description from A_Permission
    inner join L_PagePermission
    on P_PermissionID = PP_PermissionID
    inner join A_Page
    on P_PageID = PP_PageID
    where P_PermissionID = @permissionID
    order by P_Name

分页按钮:

<input id="buttonStyle" type="submit" name="Paging_Button" value="#">
<% for i = 97 to 122 %>
    <input id="buttonStyle" type="submit" name="Paging_Button" value="<%=CHR(i) %>">&nbsp;
<% next %>
<input id="buttonStyle" type="submit" name="Paging_Button" value="All">

保存复选框和复选框的功能(该功能仅适用于,例如,如果我选择一个值以 A 开头的复选框,然后按 A 过滤,复选框将显示,如果我按 B 过滤,则不会显示):

   'Checkbox check
        Function CheckedByUser(id)
            Dim x
            CheckedByUser = "checked=""checked"""
            For x=1 To Request.Form("selectedRecord").Count
                If Trim(Request.Form("selectedRecord").Item(x)) = Trim(id) Then
                    Exit Function
                End If
            Next
            CheckedByUser = ""
        End Function

<input type="checkbox" name="selectedRecord" value="<%=objRS("P_PageID")%>" <%=CheckedByUser(objRS("P_PageID")) %>>

解决分页问题的先前答案,但需要我更改我不想这样做的存储过程:

<%
Do Until objRS.EOF
    Response.Write("<input type=""checkbox"" name=""selectedRecord"" value=""" & objRS("Id") & """ " & WasCheckedByUser(objRS("Id")))
    If Len(Request.Form("Page"))=1 And Trim(Left(objRS("Id"), 1))<>Trim(Request.Form("Page")) Then
        Response.Write(" style=""display: none;""")
    End If
    Response.Write(" />")
    objRS.MoveNext
Loop
%>

执行存储过程

connectionstring = obj_ADO.getconnectionstring
Set objCon = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
set objComm = CreateObject("ADODB.Command")
objCon.Open connectionstring

objComm.ActiveConnection = objCon.ConnectionString
objComm.CommandText = "A_Page_Paging"
objComm.CommandType = 4


Set objParameter = objComm.CreateParameter
objParameter.Name = "selected_Char"
objParameter.Type = 129
objParameter.Direction = 1
objParameter.Size = 3
objParameter.Value = Selected_Button
objComm.Parameters.Append objParameter

Set objParameter2 = objComm.CreateParameter
objParameter2.Name = "PermissionID"
objParameter2.Type = 129
objParameter2.Direction = 1
objParameter2 .Size = 3
objParameter2 .Value = P_ID
objComm.Parameters.Append objParameter2

set objRS = objComm.Execute

【问题讨论】:

  • 只需调用存储过程A_Page_Paging,只传递!作为第一个参数,而不是传递选定的字母。如果需要进一步帮助,请在 ASP 代码中发布执行存储过程的代码。
  • @shadowwizard 我添加了你要求的代码

标签: html sql vbscript asp-classic


【解决方案1】:

在您的代码中更改此行:

objParameter.Value = Selected_Button

改为:

objParameter.Value = "!"

循环中已有的代码应该隐藏不属于当前“页面”的复选框。

【讨论】:

  • 除了我在存储过程中与 # 一起使用的字母之外,我如何过滤?
  • @kurupt 不知道这个有什么用,你可以简单的有objParameter.Value = "#"
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 2013-05-13
  • 1970-01-01
  • 2018-10-27
  • 2021-12-31
相关资源
最近更新 更多