using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; using GPW_data; namespace GPW_Commesse.WebUserControls { public partial class mod_autocomplete : System.Web.UI.UserControl { /// /// evento valore selezionato /// public event EventHandler eh_valSelezionato; /// /// evento valore selezionato /// public event EventHandler eh_reset; /// /// segnaposto x casella testuale autocomplete /// public string placeholder { get; set; } /// /// UID formattato con "_" /// public string uid { get { // fix brutale: nelle pagine master c'è un ctl00_ iniziale di troppo... return this.UniqueID.Replace("$", "_").Replace("ctl00_", "").Replace("ctl01_", ""); } } /// /// caricamento pagina /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { defaultVal = ""; txtSel.Attributes["placeholder"] = placeholder; } } /// /// wrapper traduzione /// /// /// public string traduci(object lemma) { return user_std.UtSn.Traduci(lemma.ToString()); } protected void txtSel_TextChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtSel.Text.Trim())) { hiddenFieldID.Text = defaultVal; _valore = defaultVal; } if (eh_valSelezionato != null) { eh_valSelezionato(this, new EventArgs()); } } /// /// salvo valore selezionato! /// /// /// protected void hiddenFieldID_TextChanged(object sender, EventArgs e) { salvaSelezione(); } /// /// valore selezionato dal controllo (RW local) /// protected string _valore { get { return memLayer.ML.StringSessionObj(uid + "_sel"); } set { memLayer.ML.setSessionVal(uid + "_sel", value); } } /// /// salva evento selezione /// /// /// protected void btnPost_Click(object sender, EventArgs e) { salvaSelezione(); } private void salvaSelezione() { _valore = hiddenFieldID.Text; if (eh_valSelezionato != null) { eh_valSelezionato(this, new EventArgs()); } } /// /// valore (chiave) selezionato dal controllo (R public) /// public string valore { get { string answ = ""; try { answ = hiddenFieldID.Text; } catch { answ = txtSel.Text.Trim(); } if (string.IsNullOrEmpty(answ)) { answ = txtSel.Text.Trim(); } return answ; } set { hiddenFieldID.Text = value; } } /// /// label selezionato dal controllo (R public) /// public string selezione { get { return txtSel.Text; } set { txtSel.Text = value; } } /// /// label dell'etichetta di ricerca /// public string labelRicerca { set { lblField.Text = value; } } /// /// label dell'etichetta di ricerca CON TRADUZIONE /// public string labelRicercaTrad { set { lblField.Text = traduci(value); } } /// /// num minimo caratteri x autocomplete /// public Int32 minCharAutocomplete { get { return Convert.ToInt32(txtMinCharAutoCom.Text); } set { txtMinCharAutoCom.Text = value.ToString(); } } /// /// path del webservice (compreso metodo) /// nb: DI NORMA fornisce risultati nel formato label#valore /// public string ServicePath { get { return txtServiceUrl.Text; } set { txtServiceUrl.Text = value; } } /// /// imposta visibilità della textBox delle chiavi /// public bool showKey { set { if (!value) { hiddenFieldID.Width = Unit.Pixel(0); } } } /// /// imposta la stringa tooltip /// public string toolTip { set { txtSel.ToolTip = value; } } /// /// larghezza textbox in unità EM /// public int textEmWidht { set { txtSel.Width = Unit.Parse(string.Format("{0}em", value)); } } /// /// larghezza textbox in unità % /// public int textEmPerc { set { txtSel.Width = Unit.Parse(string.Format("{0}%", value)); } } /// /// imposta il focus sulla textBox /// public void setFocus() { txtSel.Focus(); } /// /// permette di passare altri parametri di contesto al metodo invocato x autocomplete /// public string contextKey { get { return txtSel.AccessKey; } set { txtSel.AccessKey = value; } } /// /// tabIndex del controllo /// public short TabIndex { set { txtSel.TabIndex = value; } } /// /// valore di default (x reset) /// public string defaultVal { get; set; } /// /// resetta controllo /// public void doReset() { // resetto selezione e ricerca! txtSel.Text = ""; hiddenFieldID.Text = defaultVal; _valore = defaultVal; } /// /// effettuato reset /// /// /// protected void lnkReset_Click(object sender, EventArgs e) { doReset(); if (eh_reset != null) { eh_reset(this, new EventArgs()); } } /// /// stile x la label /// public Unit labelWidth { set { lblField.Width = value; } } /// /// dummy call x indicare selezione... /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { salvaSelezione(); } } }