Go Back   Velocity Reviews > Newsgroups > ASP Net
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

ASP Net - ASP.NET and checkbox help

 
Thread Tools Search this Thread
Old 02-07-2005, 02:15 PM   #1
Default ASP.NET and checkbox help


Hi all,

I'm new to ASP.NET and am working through a few exercises in a book to get
up to speed. First, some background:

I'm running SQL Server 2000 and have one field as a bit data type (0=false
or 1=true). On a form I have a check box that a user can check for whatever
reason. This field saves properly to the DB.

However, my problem is in editing the field. When I click a link to update
a record, the checkbox is always unchecked. If I leave it unchecked it
updates the field to show as false. I can't seem to get it to enable based
on the data from the dataset. it looks like I've got it set to dynamic as
well (I'm using Dreamweaver to develop).

In the parameter tag I have this:

<Parameter Name="@access" Value='<%# IIf((Request.Form("EditPages") <>
Nothing), Request.Form("access"), "") %>' Type="Boolean" />

And for the actual checkbox I have:

<asp:checkbox id="EditPages" runat="server" checked='<%#
IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>' />

Now, again - new to ASP.NET (.NET in general) and I can't follow this logic.
An someone walk me through it? Also - why are If statements IIF (with 2
I's?)

Thanks for your newbie patience!

Dave





Dave
  Reply With Quote
Old 02-07-2005, 02:43 PM   #2
=?Utf-8?B?Q293Ym95IChHcmVnb3J5IEEuIEJlYW1lcikgLSBNVlA=?=
 
Posts: n/a
Default RE: ASP.NET and checkbox help
To answer the last question: IIf is not an if statement, at least not
directly; it is an if ... else.

The statement you have state:

if(Request.Form("EditPages")
'Get from the database
else
'do not

The statement looks fine, but the methodology you are using is very ASP, not
ASP.NET. The concept of determining where you are based on form tags is the
improper part. If it were coded in Page_Load, you would likely code:

If(Not Page.IsPostback) Then
'set up the page
Else
If Request.Form("EditPages") <> Nothing Then
End If
End If

As each button produces its own event, the above methodology is quite error
prone.

I assume there is an edit version of a page and a non-edit? If not, your IIf
is completely unnecessary.

What I would do is code everything in code behind rather than use the drag
and drop, declarative methodology. This will help you understand .NET better.
If, later, you wish to go back to declarative, that is your prerogative. YOu
will still understand the model better.

The basics are like so (assuming SQL Server, change class names for other
DBs):

'Get data
Dim connString as String = "{your connection string here}"
Dim sql as String = "{SQL Statement to get your data to edit}"

Dim conn As New SqlConnection(connString)
Dim cmd As New SqlCommand(sql, conn)

Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet("NameHere")

Try
conn.Open()
da.Fill(ds)
Catch Ex As Exception
'Add excption handler
Finally
If (conn.State = ConnectionState.Open) Then
conn.Close()
End If

conn.Dispose()

End Try

You can now bind from the one row returned (assume it is one row):

CheckBox1.Checked = ds.Tables("NameHere").Rows(0)("CheckboxField")

This methodology allows you to ignore the bind on a non-edit, by only adding
the binding routine on the edit button click (or hyperlink, etc.)

Hopefully this makes sense. If not, my suggestion is to move to C#. You will
be less likely to bring ASP/VB COM baggage into .NET if you switch languages.
You can always switch back to VB.NET later, after you have the paradigm shift
down.


---

Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

***************************
Think Outside the Box!
***************************

"Dave" wrote:

> Hi all,
>
> I'm new to ASP.NET and am working through a few exercises in a book to get
> up to speed. First, some background:
>
> I'm running SQL Server 2000 and have one field as a bit data type (0=false
> or 1=true). On a form I have a check box that a user can check for whatever
> reason. This field saves properly to the DB.
>
> However, my problem is in editing the field. When I click a link to update
> a record, the checkbox is always unchecked. If I leave it unchecked it
> updates the field to show as false. I can't seem to get it to enable based
> on the data from the dataset. it looks like I've got it set to dynamic as
> well (I'm using Dreamweaver to develop).
>
> In the parameter tag I have this:
>
> <Parameter Name="@access" Value='<%# IIf((Request.Form("EditPages") <>
> Nothing), Request.Form("access"), "") %>' Type="Boolean" />
>
> And for the actual checkbox I have:
>
> <asp:checkbox id="EditPages" runat="server" checked='<%#
> IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>' />
>
> Now, again - new to ASP.NET (.NET in general) and I can't follow this logic.
> An someone walk me through it? Also - why are If statements IIF (with 2
> I's?)
>
> Thanks for your newbie patience!
>
> Dave
>
>
>
>



=?Utf-8?B?Q293Ym95IChHcmVnb3J5IEEuIEJlYW1lcikgLSBNVlA=?=
  Reply With Quote
Old 02-07-2005, 02:54 PM   #3
Ken Cox [Microsoft MVP]
 
Posts: n/a
Default Re: ASP.NET and checkbox help
Hi Dave,

It is hard to see where your problem is given the amount of code you posted.
Perhaps you could show some more?

As for the second part, IIF is a handy function that returns one of two
"answers" according to the result of the analysis.

In your case, the code appears to be evaluating this expression:

(dsUpdate.FieldValue("EditPages", Container) = "1")

which (I assume) means evaluate whether the value of the field in EditPages
is "1".

If the value is "1", the boolean result is true. If not, the boolean result
is false.

At that point, IIF has something it can work with - a logical value. IIF
looks at the logical value and if it is true, it returns the value after the
comma. If the logical value is false, it returns the value after the second
comma which in this case is also false.

Here's the explanation in the docs:

http://msdn.microsoft.com/library/de...l/vafctIIF.asp

<asp:checkbox id="EditPages" runat="server" checked='<%#
IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>' />

Ken
MVP [ASP.NET]
Toronto


"Dave" <> wrote in message
news:...
> Hi all,
>
> I'm new to ASP.NET and am working through a few exercises in a book to get
> up to speed. First, some background:
>
> I'm running SQL Server 2000 and have one field as a bit data type (0=false
> or 1=true). On a form I have a check box that a user can check for
> whatever
> reason. This field saves properly to the DB.
>
> However, my problem is in editing the field. When I click a link to
> update
> a record, the checkbox is always unchecked. If I leave it unchecked it
> updates the field to show as false. I can't seem to get it to enable
> based
> on the data from the dataset. it looks like I've got it set to dynamic as
> well (I'm using Dreamweaver to develop).
>
> In the parameter tag I have this:
>
> <Parameter Name="@access" Value='<%# IIf((Request.Form("EditPages") <>
> Nothing), Request.Form("access"), "") %>' Type="Boolean" />
>
> And for the actual checkbox I have:
>
> <asp:checkbox id="EditPages" runat="server" checked='<%#
> IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>'
> />
>
> Now, again - new to ASP.NET (.NET in general) and I can't follow this
> logic.
> An someone walk me through it? Also - why are If statements IIF (with 2
> I's?)
>
> Thanks for your newbie patience!
>
> Dave
>
>
>




Ken Cox [Microsoft MVP]
  Reply With Quote
Old 02-07-2005, 03:25 PM   #4
Dave
 
Posts: n/a
Default Re: ASP.NET and checkbox help
Hi Ken,

Thanks for the walk through!

OK - So the IIF, for whatever reason isn't triggering properly. even though
the value of the editpages field is 1 it doesn't check the box. Could it be
because the datatype is a BIT and it is evaluating it againts a text string?

"Ken Cox [Microsoft MVP]" <> wrote in message
news:%...
> Hi Dave,
>
> It is hard to see where your problem is given the amount of code you
> posted. Perhaps you could show some more?
>
> As for the second part, IIF is a handy function that returns one of two
> "answers" according to the result of the analysis.
>
> In your case, the code appears to be evaluating this expression:
>
> (dsUpdate.FieldValue("EditPages", Container) = "1")
>
> which (I assume) means evaluate whether the value of the field in
> EditPages is "1".
>
> If the value is "1", the boolean result is true. If not, the boolean
> result is false.
>
> At that point, IIF has something it can work with - a logical value. IIF
> looks at the logical value and if it is true, it returns the value after
> the comma. If the logical value is false, it returns the value after the
> second comma which in this case is also false.
>
> Here's the explanation in the docs:
>
> http://msdn.microsoft.com/library/de...l/vafctIIF.asp
>
> <asp:checkbox id="EditPages" runat="server" checked='<%#
> IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>'
> />
>
> Ken
> MVP [ASP.NET]
> Toronto
>
>
> "Dave" <> wrote in message
> news:...
>> Hi all,
>>
>> I'm new to ASP.NET and am working through a few exercises in a book to
>> get
>> up to speed. First, some background:
>>
>> I'm running SQL Server 2000 and have one field as a bit data type
>> (0=false
>> or 1=true). On a form I have a check box that a user can check for
>> whatever
>> reason. This field saves properly to the DB.
>>
>> However, my problem is in editing the field. When I click a link to
>> update
>> a record, the checkbox is always unchecked. If I leave it unchecked it
>> updates the field to show as false. I can't seem to get it to enable
>> based
>> on the data from the dataset. it looks like I've got it set to dynamic
>> as
>> well (I'm using Dreamweaver to develop).
>>
>> In the parameter tag I have this:
>>
>> <Parameter Name="@access" Value='<%# IIf((Request.Form("EditPages") <>
>> Nothing), Request.Form("access"), "") %>' Type="Boolean" />
>>
>> And for the actual checkbox I have:
>>
>> <asp:checkbox id="EditPages" runat="server" checked='<%#
>> IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>'
>> />
>>
>> Now, again - new to ASP.NET (.NET in general) and I can't follow this
>> logic.
>> An someone walk me through it? Also - why are If statements IIF (with 2
>> I's?)
>>
>> Thanks for your newbie patience!
>>
>> Dave
>>
>>
>>

>





Dave
  Reply With Quote
Old 02-07-2005, 04:41 PM   #5
Ken Cox [Microsoft MVP]
 
Posts: n/a
Default Re: ASP.NET and checkbox help
> Could it be because the datatype is a BIT and it is evaluating it againts
> a text string?


That's my guess.


"Dave" <> wrote in message
news:...
> Hi Ken,
>
> Thanks for the walk through!
>
> OK - So the IIF, for whatever reason isn't triggering properly. even
> though the value of the editpages field is 1 it doesn't check the box.
> Could it be because the datatype is a BIT and it is evaluating it againts
> a text string?




Ken Cox [Microsoft MVP]
  Reply With Quote
Old 02-07-2005, 05:41 PM   #6
Dave
 
Posts: n/a
Default Re: ASP.NET and checkbox help
Yep - that was it.

changed it from:

IIf((dsUpdate.FieldValue("EditPages", Container) = "1"), true, false) %>'
/>

To:

IIf((dsUpdate.FieldValue("EditPages", Container) = true), true, false) %>'
/>

and worked like a charm!


"Ken Cox [Microsoft MVP]" <> wrote in message
news:u$...
>> Could it be because the datatype is a BIT and it is evaluating it againts
>> a text string?

>
> That's my guess.
>
>
> "Dave" <> wrote in message
> news:...
>> Hi Ken,
>>
>> Thanks for the walk through!
>>
>> OK - So the IIF, for whatever reason isn't triggering properly. even
>> though the value of the editpages field is 1 it doesn't check the box.
>> Could it be because the datatype is a BIT and it is evaluating it againts
>> a text string?

>





Dave
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
ASP.NET: Asign Users in Roles(Array.IndexOf(Of String) method) msandlana Software 0 04-25-2008 06:37 AM
Checkbox values problem in gridview thanigaimani.thirumalai Software 0 11-09-2007 05:12 AM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46