using System; using System.Threading; using System.Web.UI; namespace NKC_WF.WebUserControls { public partial class cmp_barcode : BaseUserControl { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { resetInput(); resetMessage(); } else if (string.IsNullOrEmpty(inputAcquired)) { checkRaiseEv(); } } /// /// evento modifica testo /// /// /// protected void txtBarcode_TextChanged(object sender, EventArgs e) { checkRaiseEv(); } /// /// Verifica se inviare evento /// private void checkRaiseEv() { if (valueRead != inputAcquired) { // registro NUOVO cmd inputAcquired = valueRead; // alzo evento SOLO SE il nuovo valore è diverso da null... if (!string.IsNullOrEmpty(inputAcquired)) { raiseEvent(); } } else { if (string.IsNullOrEmpty(inputAcquired)) { resetInput(); } } resetInput(); } /// /// Comando acquisito da Barcode /// public string inputAcquired { get { return hfLastCmd.Value; } set { hfLastCmd.Value = value; } } /// /// Valore acquisito in lettura barcode /// protected string valueRead { get { return txtBarcode.Text.Trim(); } set { txtBarcode.Text = value; } } /// /// Reset input del barcode SENZA generare evento... /// /// public void resetInput() { valueRead = ""; txtBarcode.Focus(); } /// /// reset messaggio /// public void resetMessage() { lbtReset.Visible = false; lblOutput.Text = ""; } /// /// Gestione output da mostrare (opzionale /// /// Enum delle classi permesse /// public void showOutput(AppData.cssClass cssClass, string messaggio) { // In primis: mostro qualcosa SOLO SE ho del testo lbtReset.Visible = !string.IsNullOrEmpty(messaggio); lblOutput.Text = messaggio; //lbtReset.Attributes.Remove("class"); //lbtReset.Attributes.Add("class", $"btn btn-block {cssClass}"); lbtReset.CssClass = $"btn btn-sm btn-block py-0 btn-{cssClass}"; } /// /// reset lettura /// /// /// protected void lbtReset_Click(object sender, EventArgs e) { Response.Redirect(Request.RawUrl); } } }