MSN Messenger via a website

Neat solution when your firewall admin closes the ports required for MSN Messenger, or you want to login to MSN Messenger from a cybercafe. (Of course, this just means that your firewall admin will close access to the website on the proxy instead.)

http://webmessenger.msn.com/default.aspx

It’s still in Beta and you don’t get all the features you get in the proper client, but it’s a good start. Pity it doesn’t work in Opera though, but it’s not the first time Microsoft have actively messed with Opera users to force them to use a different browser.

Some other web-based MSN Messenger systems

Programmatic templates

I’ve been musing for a while over how best to arrange the video links at the bottom of my gallery pages. For ages its just been a server control dumping them out as a table, but I thought tonight i’d try and change it to use a multi-column table instead.

This means using a DataList rather than handcoding, but from a server-side control, you can’t create the <itemTemplate> tags. Instead you to create a simple class that implements ITemplate and associate that. Code sample below, but after trawling the web I only found this one link of any use Dynamic Templates for the Repeater, DataList and DataGrid Controls

[csharp]
DataList dataList = new DataList();
dataList.DataSource = new string[] { “foo”, “bar” };
dataList.ItemTemplate = new ShowLabelTemplate();
dataList.DataBind();

internal class ShowLabelTemplate : ITemplate
{
#region ITemplate Members

public void InstantiateIn(Control container)
{
Label l = new Label();
l.DataBinding += new EventHandler(this.LabelDataBinding);
container.Controls.Add(l);
}

#endregion

public void LabelDataBinding(object sender, EventArgs e)
{
Label l = (Label)sender;
if (l.NamingContainer is DataListItem)
{
DataListItem data = (DataListItem)l.NamingContainer;
l.Text = (string)data.DataItem;
}
}
}
[/csharp]