Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Checkbox Array

Reply
Thread Tools

Checkbox Array

 
 
WC Justice
Guest
Posts: n/a
 
      08-04-2004
I have an ASP form that uses a recordset to build a table, with one of the
columns containing a checkbox. Upon posting, the ASP code of the Post-To
page uses the "For i = 1 to request.form("chkAddToInvoice").count" method to
go through the array, but it only counts checked boxes. Not only is this
causing the corresponding Update statement to write values to the wrong
records, it is preventing me from using the "False" value of the check box
to run its corresponding Update statement.

Is there a way to set up the checkbox so that it is counted whether it is
selected or not?


 
Reply With Quote
 
 
 
 
David Morgan
Guest
Posts: n/a
 
      08-04-2004
No.

With radios, check boxes and buttons, only the values of selected, (or
clicked), elements are submitted.

You could re-run the query in the "post-to" page and loop through the
recordset saying

If (Request.Form("cbxAddToInvoice_" & objRs.Fields("ID").Value).Count Then
' Update to true
Else
' Update to false
End If

Note you would need to change the name of the checkboxes on the original
page to incorporate the ID of the record the checkbox represents. You
probably have this in the checkboxes' value field at the moment. You can
change the value field to anything then.

Regards

David


"WC Justice" <(E-Mail Removed)> wrote in message
news:j%aQc.836$(E-Mail Removed)...
> I have an ASP form that uses a recordset to build a table, with one of the
> columns containing a checkbox. Upon posting, the ASP code of the Post-To
> page uses the "For i = 1 to request.form("chkAddToInvoice").count" method

to
> go through the array, but it only counts checked boxes. Not only is this
> causing the corresponding Update statement to write values to the wrong
> records, it is preventing me from using the "False" value of the check box
> to run its corresponding Update statement.
>
> Is there a way to set up the checkbox so that it is counted whether it is
> selected or not?
>
>



 
Reply With Quote
 
 
 
 
David Morgan
Guest
Posts: n/a
 
      08-04-2004
Actually, that could be a bit dangerous if people add to the record set
while the person is checking the boxes.

A better approach would be to GetRows the recordset in to an array and
create a hidden field that contains all the IDs.

<%
Set objRs = objConn.Execute("STATEMENT", , adCmdText)
If Not objRs.EOF Then
bHasResults = True
arrResults = objRs.GetRows
iResults = UBound(arrResults, 2)
End If %>

<form ...>
<% For i = 0 To iResults %>
<input type=checkbox name="chkInvoiceID_<%=arrResults(0, i)%>" value=ON>
<% Next%>
<input type="hidden" name="AllIDs" value="<% For i = 0 To iResults:
Response.Write arrResults(0, i) & ",": Next%>"
</form>


Then in the post to page do

stAllIDs = Request.Form("AllIDs")
If Len(stAllIDs) > 0 Then
arrAllIDs = Split(stAllIDs, ",")
End If

And then proceed as before using arrAllIDs(i) instead of the record set ID
field.

Gotta dash...

"David Morgan" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> No.
>
> With radios, check boxes and buttons, only the values of selected, (or
> clicked), elements are submitted.
>
> You could re-run the query in the "post-to" page and loop through the
> recordset saying
>
> If (Request.Form("cbxAddToInvoice_" & objRs.Fields("ID").Value).Count Then
> ' Update to true
> Else
> ' Update to false
> End If
>
> Note you would need to change the name of the checkboxes on the original
> page to incorporate the ID of the record the checkbox represents. You
> probably have this in the checkboxes' value field at the moment. You can
> change the value field to anything then.
>
> Regards
>
> David
>
>
> "WC Justice" <(E-Mail Removed)> wrote in message
> news:j%aQc.836$(E-Mail Removed)...
> > I have an ASP form that uses a recordset to build a table, with one of

the
> > columns containing a checkbox. Upon posting, the ASP code of the

Post-To
> > page uses the "For i = 1 to request.form("chkAddToInvoice").count"

method
> to
> > go through the array, but it only counts checked boxes. Not only is

this
> > causing the corresponding Update statement to write values to the wrong
> > records, it is preventing me from using the "False" value of the check

box
> > to run its corresponding Update statement.
> >
> > Is there a way to set up the checkbox so that it is counted whether it

is
> > selected or not?
> >
> >

>
>



 
Reply With Quote
 
David Morgan
Guest
Posts: n/a
 
      08-04-2004
Sounds good.


"WC Justice" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Thanks for the quick reply.
>
> I'm thinking that I could add a hidden box to each row with a value of 0

or
> 1 and that can be updated with the onChange event in javascript. That way

I
> will still have the user-friendly checkbox and all records would have a
> corresponding value to be counted and used to direct subsequent code.

Does
> that sound like it might work?
>
> "David Morgan" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > No.
> >
> > With radios, check boxes and buttons, only the values of selected, (or
> > clicked), elements are submitted.
> >
> > You could re-run the query in the "post-to" page and loop through the
> > recordset saying
> >
> > If (Request.Form("cbxAddToInvoice_" & objRs.Fields("ID").Value).Count

Then
> > ' Update to true
> > Else
> > ' Update to false
> > End If
> >
> > Note you would need to change the name of the checkboxes on the original
> > page to incorporate the ID of the record the checkbox represents. You
> > probably have this in the checkboxes' value field at the moment. You

can
> > change the value field to anything then.
> >
> > Regards
> >
> > David
> >
> >
> > "WC Justice" <(E-Mail Removed)> wrote in message
> > news:j%aQc.836$(E-Mail Removed)...
> > > I have an ASP form that uses a recordset to build a table, with one of

> the
> > > columns containing a checkbox. Upon posting, the ASP code of the

> Post-To
> > > page uses the "For i = 1 to request.form("chkAddToInvoice").count"

> method
> > to
> > > go through the array, but it only counts checked boxes. Not only is

> this
> > > causing the corresponding Update statement to write values to the

wrong
> > > records, it is preventing me from using the "False" value of the check

> box
> > > to run its corresponding Update statement.
> > >
> > > Is there a way to set up the checkbox so that it is counted whether it

> is
> > > selected or not?
> > >
> > >

> >
> >

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ASPNET CheckBox and a CheckBox in a TemplateField Jason Huang ASP .Net 0 06-29-2007 12:35 AM
DataGrid and embeded Checkbox..How to find if checkbox clicked =?Utf-8?B?RG90TmV0RGV2?= ASP .Net 1 10-06-2006 04:11 PM
disable checkbox list checkbox Vikram ASP .Net 1 01-25-2006 02:59 PM
Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked. Joey Pang ASP .Net Datagrid Control 4 06-13-2005 02:29 AM
Text on Checkbox below the checkbox tshad ASP .Net 0 04-14-2005 11:26 PM



Advertisments