Probablement la meilleure façon est de générer automatiquement les cases à cocher en utilisant ASP classique et utilisez l'élément ID de données que la différenciation entre eux, comme si ...
<%
Dim data, row
Const C_COL_RECORD_ID = 0
Const C_COL_NAME = 1
data = GetDataSetAsArray() 'Just used as an arbitrary method for recovering the data.
For row = 0 to UBound(data, 2) 'Loop through the array rows.
%>
<input type="checkbox" id="chkYes<%=data(C_COL_RECORD_ID, row)%>" name="chkYes<%=data(C_COL_RECORD_ID, row)%>" />
<input type="checkbox" id="chkNo<%=data(C_COL_RECORD_ID, row)%>" name="chkNo<%=data(C_COL_RECORD_ID, row)%>" />
<input type="checkbox" id="chkMaybe<%=data(C_COL_RECORD_ID, row)%>" name="chkMaybe<%=data(C_COL_RECORD_ID, row)%>" />
<label><%=data(C_COL_NAME, row)%> <!-- Write the name to the page --></label>
<%
Next 'row
%>
Notez que ceci est un très rapide et moyen facile de le faire. Si vous avez besoin de plus d'informations à partir de vos données, vous devrez le trier.
Quand il s'agit de travailler avec les cases à cocher, ils seront nommés et numérotés à l'ID d'enregistrement de la personne, comme si ...
chkYes1, chkNo1, chkMaybe1
chkYes2, chkNo2, chkMaybe2
...
chkYes[n], chkNo[n], chkMaybe[n]
Évidemment, cela va dépendre de votre ids record, alors ils peuvent ne pas être aussi sériels que je l'ai démontré ci-dessus.
- EDIT -
En fait, cela va de pair avec un poste que je viens de faire. Take a look here et copiez la fonction GetPostData()
. Tirer le dos de l'information sera quelque chose comme ceci:
Dim checkValue
checkValue = GetPostData("chkMaybe" & personId, "") <> ""
Le checkValue
contiendra soit true
ou false
.
Évidemment, vous pouvez étendre ceci pour recharger tous les personId
et les faire défiler pour extraire les différentes valeurs de case à cocher.
--EDIT--
Les name
et id
attributs vraiment besoin d'un préfixe pour être clair quant à leur intention (si vous n'assignant l'ID d'enregistrement alors chaque contrôle aura un ID en double la même rangée visuelle). Deuxièmement, <%= %>
est utilisé pour (Response.
) écrire des valeurs sur la page. Par conséquent, quelque chose comme:
<input type="text" id="txtName<%=data(C_COL_RECD_ID, row)%>" name="txtName<%=data(C_COL_RECD_ID, row)%>" />
Conviendrait - remarquez le txtName
juste avant la <%=data(C_COL_RECD_ID, row)%>
.De même, si vous faisiez référence à une case à cocher, vous pouvez utiliser les éléments suivants:
<input type="checkbox" id="chkYes<%=data(C_COL_RECORD_ID, row)%>" name="chkYes<%=data(C_COL_RECORD_ID, row)%>" />
PS: Si cela peut aider, je l'ai posté un morceau de code in another thread qui va lire les données à partir d'une base de données, étant donné les chaînes SQL et de connexion et renvoyer les données dans un tableau. Il piège et signale également les erreurs - peut être utile.
Pour l'utiliser:
Dim sql, conn, data
sql = "SELECT * FROM myTable"
conn = "MyDbConnection;whatever"
Data = GetDataSet(sql, conn)
Puis erreur poignée ...
If Data(0, 0) = C_ERROR Then
'Handle error...
Response.Write(Data(C_COL_ERROR_ID, 0) & "<br />" & Data(C_COL_ERROR_MESSAGE, 0) & "<br />")
End If
S'il y a un nombre inconnu de personnes sont là plusieurs instances de la même case? Si oui, alors vous devez vous référer à eux dans un tableau ... si vous confirmez que je posterai répondre à la façon de se référer et de définir des tableaux comme celui-ci. – allski