446 lines
9.8 KiB
C#
446 lines
9.8 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using SteamWare;
|
|
|
|
public partial class mod_filtro : ApplicationUserControl
|
|
{
|
|
protected string _css;
|
|
protected ObjectDataSource _ods;
|
|
protected string _valore
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.StringSessionObj(string.Format("valFiltro_{0}", this.ID));
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("valFiltro_{0}", this.ID), value, false);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// calcola se ci sia in sessione il valore del filtro
|
|
/// </summary>
|
|
protected bool valueInSession
|
|
{
|
|
get
|
|
{
|
|
bool answ = false;
|
|
try
|
|
{
|
|
memLayer.ML.isInSessionObject(string.Format("valFiltro_{0}", this.ID));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
}
|
|
protected bool _changeCheckEnabled = true;
|
|
protected bool _changeCheckVisible = true;
|
|
protected bool _changeSelEnabled = true;
|
|
protected string _where = "";
|
|
protected string _showFiltered
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.StringSessionObj(string.Format("_showFiltered_{0}", this.ID));
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("_showFiltered_{0}", this.ID), value);
|
|
traduciObj();
|
|
}
|
|
}
|
|
protected string _showAll
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.StringSessionObj(string.Format("_showAll_{0}", this.ID));
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("_showAll_{0}", this.ID), value);
|
|
traduciObj();
|
|
}
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
if (!Page.IsPostBack)
|
|
{
|
|
if (string.IsNullOrEmpty(_showFiltered)) _showFiltered = "mostraSoloSelez";
|
|
if (string.IsNullOrEmpty(_showAll)) _showAll = "mostraTutti";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// traduzione oggetti
|
|
/// </summary>
|
|
protected override void traduciObj()
|
|
{
|
|
if (_changeCheckVisible)
|
|
{
|
|
if (!chkFilt.Checked)
|
|
{
|
|
chkFilt.Text = traduci(_showFiltered);
|
|
}
|
|
else
|
|
{
|
|
chkFilt.Text = traduci(_showAll);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// get/set messaggio di attivazione filtraggio
|
|
/// </summary>
|
|
public string filterChekText
|
|
{
|
|
get
|
|
{
|
|
return _showFiltered;
|
|
}
|
|
set
|
|
{
|
|
_showFiltered = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// get/set messaggio di disattivazione filtraggio
|
|
/// </summary>
|
|
public string filterUnchekText
|
|
{
|
|
get
|
|
{
|
|
return _showAll;
|
|
}
|
|
set
|
|
{
|
|
_showAll = value;
|
|
}
|
|
}
|
|
protected void chkFilt_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
// cambio modalità visualizzazione del filtro...
|
|
dlFilt.Visible = !dlFilt.Visible;
|
|
raiseSelEvent();
|
|
}
|
|
|
|
protected void raiseSelEvent()
|
|
{
|
|
if (!dlFilt.Visible)
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("valFiltro_{0}", this.ID), "", false);
|
|
}
|
|
else
|
|
{
|
|
_valore = dlFilt.SelectedValue;
|
|
}
|
|
if (eh_selValore != null)
|
|
{
|
|
eh_selValore(this, new EventArgs());
|
|
}
|
|
}
|
|
protected void updateChk()
|
|
{
|
|
chkFilt.Enabled = _changeCheckEnabled;
|
|
if (!_changeCheckEnabled)
|
|
{
|
|
chkFilt.Checked = true;
|
|
dlFilt.Visible = true;
|
|
}
|
|
}
|
|
protected void updateSel()
|
|
{
|
|
dlFilt.Enabled = _changeSelEnabled;
|
|
}
|
|
protected void updateChkLbl()
|
|
{
|
|
chkFilt.Visible = _changeCheckVisible;
|
|
}
|
|
protected override void bindControlli()
|
|
{
|
|
updateChk();
|
|
fixValore();
|
|
where.Text = _where;
|
|
traduciObj();
|
|
}
|
|
protected SteamWare.tipoVistaMod _modo = SteamWare.tipoVistaMod.editing;
|
|
protected void dlFilt_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
raiseSelEvent();
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// condizione where per ridurre elementi mostrati in selettore
|
|
/// </summary>
|
|
public string condizione
|
|
{
|
|
get
|
|
{
|
|
return _where;
|
|
}
|
|
set
|
|
{
|
|
_where = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// fornisce il valore scelto o "*" se nulla selezionato
|
|
/// </summary>
|
|
public string valore
|
|
{
|
|
get
|
|
{
|
|
string answ = "*";
|
|
if (chkFilt.Checked)
|
|
{
|
|
answ = dlFilt.SelectedValue;
|
|
}
|
|
return answ;
|
|
}
|
|
set
|
|
{
|
|
_valore = value;
|
|
//fixValore();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// primo valore di una chiave multicampo
|
|
/// </summary>
|
|
public string val_1
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (chkFilt.Checked)
|
|
{
|
|
try
|
|
{
|
|
string[] _dataKey = dlFilt.SelectedValue.Split('#');
|
|
answ = _dataKey[0];
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
else
|
|
{
|
|
answ = "*";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// secondo valore di una chiave multicampo
|
|
/// </summary>
|
|
public string val_2
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (chkFilt.Checked)
|
|
{
|
|
try
|
|
{
|
|
string[] _dataKey = dlFilt.SelectedValue.Split('#');
|
|
answ = _dataKey[1];
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
else
|
|
{
|
|
answ = "*";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// fornisce il valore scelto o "0" se nulla selezionato o non valido
|
|
/// </summary>
|
|
public int valoreInt
|
|
{
|
|
get
|
|
{
|
|
int answ = -1;
|
|
try
|
|
{
|
|
if (chkFilt.Checked)
|
|
{
|
|
answ = Convert.ToInt32(dlFilt.SelectedValue);
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// sistema visualizzazione
|
|
/// </summary>
|
|
protected void fixValore()
|
|
{
|
|
if (_ods != null)
|
|
{
|
|
try
|
|
{
|
|
dlFilt.DataSource = _ods;
|
|
dlFilt.DataBind();
|
|
if (!string.IsNullOrEmpty(_valore))
|
|
{
|
|
|
|
dlFilt.SelectedValue = _valore;
|
|
dlFilt.Visible = true;
|
|
chkFilt.Checked = true;
|
|
}
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
logger.lg.scriviLog(string.Format("Eccezione:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
|
|
dlFilt.SelectedIndex = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public event EventHandler eh_selValore;
|
|
|
|
/// <summary>
|
|
/// determina se sia possibile (de)selezionare il check di filtraggio, altrimenti sempre attivo
|
|
/// </summary>
|
|
public bool changeCheckEnabled
|
|
{
|
|
get
|
|
{
|
|
return _changeCheckEnabled;
|
|
}
|
|
set
|
|
{
|
|
_changeCheckEnabled = value;
|
|
updateChk();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// determina se sia possibile modificare la selezione
|
|
/// </summary>
|
|
public bool changeSelEnabled
|
|
{
|
|
get
|
|
{
|
|
return _changeSelEnabled;
|
|
}
|
|
set
|
|
{
|
|
_changeSelEnabled = value;
|
|
updateSel();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// determina se sia possibile visibile il check di filtraggio
|
|
/// </summary>
|
|
public bool changeCheckVisible
|
|
{
|
|
get
|
|
{
|
|
return _changeCheckVisible;
|
|
}
|
|
set
|
|
{
|
|
_changeCheckVisible = value;
|
|
updateChkLbl();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// get/set della checkbox
|
|
/// </summary>
|
|
public bool isChecked
|
|
{
|
|
get
|
|
{
|
|
return chkFilt.Checked;
|
|
}
|
|
set
|
|
{
|
|
chkFilt.Checked = value;
|
|
dlFilt.Visible = value;
|
|
updateChkLbl();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// oggetto ODS con cui popolare il selettore, VINCOLO abbia campi value(key) / label
|
|
/// </summary>
|
|
public ObjectDataSource ods
|
|
{
|
|
get
|
|
{
|
|
return _ods;
|
|
}
|
|
set
|
|
{
|
|
_ods = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// css applicato agli elementi del controllo
|
|
/// </summary>
|
|
public string css
|
|
{
|
|
get
|
|
{
|
|
return _css;
|
|
}
|
|
set
|
|
{
|
|
_css = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// resetta il controllo (un-checked)
|
|
/// </summary>
|
|
public void reset()
|
|
{
|
|
chkFilt.Checked = false;
|
|
dlFilt.Visible = false;
|
|
memLayer.ML.emptySessionVal(string.Format("valFiltro_{0}", this.ID));
|
|
}
|
|
/// <summary>
|
|
/// resetta e seleziona primo valore
|
|
/// </summary>
|
|
public void reselFirst()
|
|
{
|
|
dlFilt.DataBind();
|
|
bindControlli();
|
|
try
|
|
{
|
|
dlFilt.SelectedIndex = 0;
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
/// <summary>
|
|
/// get/set per la larghezza della combo dropdown
|
|
/// </summary>
|
|
public int comboWidth
|
|
{
|
|
get
|
|
{
|
|
return Convert.ToInt32(dlFilt.Width);
|
|
}
|
|
set
|
|
{
|
|
dlFilt.Width = value;
|
|
}
|
|
}
|
|
|
|
} |