[Mono-list] Problem with DataBinder.Eval(Container.DataItem, "")

Carl Olsen carl at carl-olsen.com
Fri Jun 3 19:52:12 EDT 2005


I'm not sure I understand the problem, but you should be able to define a
function and use it on the DataItem.  Say, for example, that I wanted to
change the color of the text depending on the value of the DataItem (say,
for example, true and false):

In the code behind page, I have this:

		protected System.Drawing.Color GetColorText(DateTime
resignationDate)
		{
			DateTime todayDate = DateTime.Now;
			if (resignationDate < todayDate)
			{
				return System.Drawing.Color.Pink;
			}
			else
			{
				return System.Drawing.Color.Teal;
			}
		}

In my item template, I call the function, like this:

<asp:label runat="server" text='<%# DataBinder.Eval(Container.DataItem,
"MemberName") %>' font-bold="True" id="District2" width="100%"
forecolor='<%# GetColorText((DateTime)DataBinder.Eval(Container.DataItem,
"ResignationDate")) %>'/>

Does that help?

-----Original Message-----
From: mono-list-bounces at lists.ximian.com
[mailto:mono-list-bounces at lists.ximian.com] On Behalf Of David P. Donahue
Sent: Friday, June 03, 2005 5:25 PM
To: mono-list at lists.ximian.com
Subject: [Mono-list] Problem with DataBinder.Eval(Container.DataItem, "")

Not sure if this is a Mono thing or a .NET thing in general, but...

Normally, when I want to bind data to a DataList in ASP .NET, I just 
bind it to a DataSet and the HTML code contains things like:
<%# DataBinder.Eval(Container.DataItem, "Title") %>
This manages to display, for each record, the text contained in the 
field "Title" in the DataSet.

Now, I'm trying to add some more logic to that.  As far as I know, I'd 
need to lose the # in the opening bracket and I can just write code as 
normal.  This code should be in C# if that's what I use in my project, 
right?  My first step before adding any other logic was to simply change 
the above to:
<% Response.Write(DataBinder.Eval(Container.DataItem, "Title")); %>
However, I get an error at runtime saying that the name "Container" 
can't be found in the class.

Is this by design?  Is there another approach I should take?  All I'm 
trying to do is add a simple conditional so, based on the contents of 
one field, it will either display another field or display a default. 
Simple enough.

Any ideas?


Regards,
David P. Donahue
ddonahue at ccs.neu.edu
_______________________________________________
Mono-list maillist  -  Mono-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list





More information about the Mono-list mailing list