Dopo il db, ecco come ho esteso i controlli base del Framework. Prima di tutto ho definito 3 interfacce, una base e 2 che ereditano da questa:
public interface ILocalizable{ string LocalizationCode{ get; set; } } public interface ISingleLocalizable : ILocalizable{ string LocalizationText{ get; set; } } public interface IMultipleLocalizable : ILocalizable{ string[] LocalizationText{ get; set; } } <p />public class GNLiteral : System.Web.UI.WebControls.Literal, ISingleLocalizable{ public string LocalizationText{ get { return Text; } set { Text = (value == null) ? "???" : value; } } public string LocalizationCode{ get { if (ViewState["IDLOC"] != null){ return Convert.ToString(ViewState["IDLOC"]); } return String.Empty; } set { ViewState["IDLOC"] = value; } } }
La terza interfaccia serve per controlli che visualizzano più testi come ListBox, DropDownList, CheckboxList ecc.
public class GNDropDownList : System.Web.UI.WebControls.DropDownList, IMultipleLocalizable{ public string[] LocalizationText{ get { string[] result = new string[Items.Count]; for (int i=0; i<items.count; /> result[i] = Items[i].Text; } return result; } set { for (int i=0; i<items.count; /> if (value == null || value.Length <= i) Items[i].Text = "???"; else Items[i].Text = value[i]; } } } public string LocalizationCode{ get { if (ViewState["IDLOC"] != null){ return Convert.ToString(ViewState["IDLOC"]); } return String.Empty; } set { ViewState["IDLOC"] = value; } } }
Le interfacce vengono utilizzate per astrarre il nome della proprietà che contiene il testo da tradurre, lasciando al controllo l'implementazione. Per esempio, se per un Button la proprietà da tradurre è "Text", per un Validator è "ErrorMessage".
Nel prossimo post, concluderò mostrando il metodo che traduce tutti gli oggetti della pagina.
Stay tuned...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Entity Framework è lento! mmmmh, probabilmente sei tu che lo stai usando male!, il 7 ottobre 2022 alle 10:55
- Cosa penso di ASP.NET vNext, il 3 settembre 2014 alle 09:00
- E così AngularJS e DurandalJS convergono..., il 7 maggio 2014 alle 11:51
- Usare fiddler per simulare le risposte da un servizio, il 28 ottobre 2013 alle 08:00
- Tip: cosa fare quando Entity Framework Code-First Migrations smette di funzionare, il 18 gennaio 2013 alle 11:04
- Visual Studio 11 beta: le novità di Entity Framework 5.0 e WCF 4.5, il 2 marzo 2012 alle 23:08