Thinking the right way?

S

Simon Harris

Hi All,

I'm new to ASP.Net.

As I understand it, the code and presentation should as much as possible
remain seperate. Code is in the 'codebehind' - Be it a script block at the
top of the page or seperate file. I have a situation where I need to list
the number of related records.

So far, I have a datalist, which displays records along with an indicator of
related records for that record, example... "France (4)" (Four related
records)

What I would like to do is display a messages depending on how many related
records are found
e.g. 'Record' where there is 1 record, and 'Records' where there are 1 or
more records, and 'No Records' where there are zero.

This would probably be quite straight forward in a script block at the point
of display, but I would like to do this the 'proper' way to keep my
presentation and logic seperate.

So...Can anyone advise how I would go about setting a label for each item in
my datalist? Is this done at the point of binding the data? Am I
understanding this correctly?

Heres what I currently have...

<ItemTemplate>
<a href="/show_resorts.aspx?countryid=<%# Container.DataItem("countryid")
%>">
<img src="/assets/images/flags/<%# Container.DataItem("countryid") %>.jpg"
title="View records for <%# Container.DataItem("country") %>"
class="SPDImage" /></br>
<%# Container.DataItem("country") %><br>
<span class="smallprint">(<%# Container.DataItem("Resorts") %>
Resorts)</span>
</a>
</ItemTemplate>

The above is a chunk from my datalist, which is bound to an MS Access
OleDbCommand.

Thanks!

Simon.

--
-
* Please reply to group for the benefit of all
* Found the answer to your own question? Post it!
* Get a useful reply to one of your posts?...post an answer to another one
* Search first, post later : http://www.google.co.uk/groups
* Want my email address? Ask me in a post...Cos2MuchSpamMakesUFat!



--
-
* Please reply to group for the benefit of all
* Found the answer to your own question? Post it!
* Get a useful reply to one of your posts?...post an answer to another one
* Search first, post later : http://www.google.co.uk/groups
* Want my email address? Ask me in a post...Cos2MuchSpamMakesUFat!
 
C

clintonG

Have you checked the documentation for the object(s) you are
using to determine if there is a Rowcount property?


--
<%= Clinton Gallagher
A/E/C Consulting, Web Design, e-Commerce Software Development
Wauwatosa, Milwaukee County, Wisconsin USA
NET csgallagher@ REMOVETHISTEXT metromilwaukee.com
URL http://www.metromilwaukee.com/clintongallagher/
 
R

Rick Strahl [MVP]

Hi Simon,

I think using good judgement is more important than following 'rules' all
the time. In some situations using script tags inside of the page is just
plain easier to work with and provides better performance to boot.

You can access each element as it's loaded via code, but if you have a
template column this gets to be a hassle that is also pretty slow because
you'll need to query each control using FindControl() then set properties
etc.
There are ItemCreated and ItemDataBound events that you can handle that let
you programmatically catch each of the columns in the dg as they are bound
and assign data to them. It can be done, but using a template tag is often
more efficient and more self-explanatory.

In cases where template expressions get real complex I tend to create
methods on the form that handle the task to keep complex code out of the
page, but for simple expressions I would never hesitate of sticking them
into the page.

+++ Rick ---

--

Rick Strahl
West Wind Technologies
http://www.west-wind.com/
http://www.west-wind.com/weblog/
 
J

John Saunders

Rick Strahl said:
Hi Simon,

I think using good judgement is more important than following 'rules' all
the time. In some situations using script tags inside of the page is just
plain easier to work with and provides better performance to boot.

In my experience, inline script tags can be more difficult to maintain that
codebehind.
You can access each element as it's loaded via code, but if you have a
template column this gets to be a hassle that is also pretty slow because
you'll need to query each control using FindControl() then set properties
etc.

I have never seen a measurement of the difference in performance, but I
would be surprised to find there's much of a difference.
There are ItemCreated and ItemDataBound events that you can handle that let
you programmatically catch each of the columns in the dg as they are bound
and assign data to them. It can be done, but using a template tag is often
more efficient and more self-explanatory.

The ItemCreated and ItemDataBound events are where I usually do things like
this. Each one fires once per item. I use ItemCreated for any code which
does not depend on the underlying data, and ItemDataBound for any code which
does depend on the underlying data.
 
S

Simon Harris

Thanks for the replies guys - Seems its a case of doing what feels right! :)

Simon.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top