mercoledì 31 marzo 2010

Umbraco: elencare le lingue disponibili con un custom data type

E' da tempo che non faccio un post su questo blog, un po' perché sono molto impegnato con l'ultimo sito e un po' per via della preparazione al lancio della community umbraco italiana, che dovrebbe partire il 14 maggio, con un evento di lancio previsto in Trentino per il 18 o il 25 giugno in corrispondenza con un evento VS 2010.
Per farmi perdonare, ecco il codice che permette di generare un tipo di dato personalizzato che elenca le lingue disponibili, che può essere molto utile per esempio per gestire le preferenze linguistiche per l'invio di una mailing list.
Il codice prevede une controllo utente di ASP.NET con una semplice radioButtonList

<asp:RadioButtonList cssclass="rb" id="ChooseLanguage" repeatdirection="Horizontal" repeatlayout="Flow" runat="server"></asp:RadioButtonList>
associato a questo pezzo di codice:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using umbraco.cms.businesslogic.language;

namespace YOUR_NAMESPACE

{
public partial class ChooseLanguages : System.Web.UI.UserControl, umbraco.editorControls.userControlGrapper.IUsercontrolDataEditor

{

public string umbracoValue;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Language[] avLanguages = Language.getAll;
foreach (Language lg in avLanguages)
{
int init = lg.FriendlyName.IndexOf("(");
string langue = lg.FriendlyName.Remove(init).Trim();
ListItem li = new ListItem(langue, lg.id.ToString());
ChooseLanguage.Items.Add(new ListItem(langue, lg.id.ToString()));
}
ChooseLanguage.Items.FindByValue(umbracoValue).Selected = true;
}
else
{
umbracoValue = ChooseLanguage.SelectedValue;
}
}
public object value
{
get { return umbracoValue; }
set { umbracoValue = value.ToString(); }
}
}


Se vi è utile, non esitare a commentare.

Nessun commento: