ASP.NET LISTBOX DOES NOT DISABLE

Added on 2013-02-22 Under:

With ASP.NET 4, ListBoxes no longer disable. This appears to be a bug with ASP.NET 4

According to the ASP.NET 4 Breaking Changes whitepaper (http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770141)

Controls that are not designed for user input (for example, the Label control) no longer render the disabled="disabled" attribute if their Enabled property is set to false (or if they inherit this setting from a container control).

That's great for label controls etc, but a ListBox (select element with the multiple attribute) is designed for user input and should support the disabled attribute.

There are a couple of options to work around this issue.

1) extend the ListBox and override the SupportsDisabledAttribute property:

public class DisabledSupportedListBox : ListBox
{
   public override bool SupportsDisabledAttribute { get { return true; } }
}

2) server side, manually add the disabled attribute:

ListBox.Attributes.Add("disabled", "disabled");

3) client side, manually add the disabled attribute:

$(function () {
    $("select.aspNetDisabled").attr('disabled', 'disabled');
});

If you're already extending the ListBox, option 1 is definitely the best bet. Otherwise, I'd go with option 2 and only use option 3 as a last resort.

C# DATETIME CONSTANT

Added on 2013-02-15 Under:

In VB.NET, you could use a VB Date literal to define a constant. (Side Note, VB Date literals always use the American mm/dd/yyyy format)

Public Const CONSTANT_DATE As DateTime = #1/1/1501#

but in C#, no such thing exists. A simple workaround is to create a static readonly variable and assign it the desired date.

public static readonly DateTime CONSTANT_DATE = new DateTime(1501, 01, 01);

CANNOT EVALUATE THE ITEM METADATA "%(FULLPATH)"

Added on 2013-02-06 Under:

When building one of the web services at work, I kept running into this error:

Cannot evaluate the item metadata "%(FullPath)". 
The item metadata "%(FullPath)" cannot be applied to the path 
	"bin\Debug\Native.[...].manifest". 

Turns out I was exceeding the limitation of 255 characters in a file path on windows. Moving the solution to a root directory fixed the error and let the service compile.

DEVELOPMENT LINKS FOR 2012-11-26

Added on 2012-11-26 Under:

Hypermedia is the New REST

Understand memory leaks in JavaScript applications

Answering Baranovskiy’s JavaScript quiz

Shared-Secret Authentication

Writing Fast, Memory-Efficient JavaScript

The Web engineer's online toolbox

DEVELOPMENT LINKS FOR 2012-11-21

Added on 2012-11-21 Under:

A Backbone.js Render Method Explained for Beginners

Clojure Quickstart with Sublime Text 2

Unify client-side and server-side rendering by embedding JSON