J'utilise la pagination qui utilise une procédure stockée pour filtrer par lettre. Je dois enregistrer les valeurs des cases à cocher lorsque je soumets le formulaire comme je filtre par lettre. J'ai eu un previous question semblable à ceci qui a fonctionné grand mais je veux pouvoir garder ma procédure stockée.Recherche et enregistrement des valeurs des cases à cocher
procédure stockée:
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
boutons Paging:
<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) %>">
<% next %>
<input id="buttonStyle" type="submit" name="Paging_Button" value="All">
fonction pour enregistrer des cases à cocher et case à cocher (la fonction ne fonctionne que par exemple si je sélectionne une case à cocher avec la valeur commençant par A puis filtre par A la case à cocher montrera, si je filtre par B il ne sera pas):
'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")) %>>
Réponse précédente pour corriger problème de pagination mais me demande de changer ma procédure stockée que je préfère ne pas faire:
<%
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
%>
exécution procédure stockée
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
Appelez simplement la procédure stockée 'A_Page_Paging' en ne passant que'! 'Comme premier paramètre, au lieu de passer la lettre sélectionnée. Publiez le code où vous exécutez la procédure stockée dans le code ASP si vous souhaitez obtenir de l'aide supplémentaire. –
@shadowwizard J'ai ajouté le code que vous avez demandé –