Files
GMW/GMW_Term/WebUserControls/mod_searchRes.ascx.cs
T

389 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using System.Text;
namespace GMW_Term.WebUserControls
{
public partial class mod_searchRes : System.Web.UI.UserControl
{
/// <summary>
/// idxBlocco selezionato
/// </summary>
protected int idxBlocco
{
get
{
return memLayer.ML.IntSessionObj("IdxBlocco_sel");
}
set
{
memLayer.ML.setSessionVal("IdxBlocco_sel", value);
}
}
/// <summary>
/// udc selezionato
/// </summary>
protected string udc
{
get
{
return memLayer.ML.StringSessionObj("UDC4det_sel");
}
set
{
memLayer.ML.setSessionVal("UDC4det_sel", value);
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
idxBlocco = -1;
grViewMag.SelectedIndex = 0;
}
showData();
registraScripts();
}
/// <summary>
/// registro scripts gestione navigazione via arrow keys
/// </summary>
private void registraScripts()
{
// registro script x gestione keyUp/keyDown
ClientScriptManager cs = Page.ClientScript;
String csname = "keyScript";
Type cstype = this.GetType();
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname))
{
string scriptKeyNav = @"function move(e) {
var key = 0;
if(window.event)
key = event.keyCode;
else
key = e.keyCode;
if(key == 38)
document.getElementById('{ctlName}_btnUp').click();
if(key == 40)
document.getElementById('{ctlName}_btnDown').click();
if(key == 37)
document.getElementById('{ctlName}_btnLeft').click();
if(key == 39)
document.getElementById('{ctlName}_btnRight').click();
if(key == 13)
document.getElementById('{ctlName}_btnRight').click();
}
document.onkeydown=move;
";
// rif x codici: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
scriptKeyNav = scriptKeyNav.Replace("{ctlName}", this.UniqueID.Replace("$", "_"));
// registro script!
cs.RegisterClientScriptBlock(cstype, csname, scriptKeyNav, true);
}
}
/// <summary>
/// mostra i dati corretti
/// </summary>
private void showData()
{
bool showBlocchi = true;
bool showUdc = false;
bool showDetUdc = false;
// controllo se ho un idxBlocco sel
if (idxBlocco > 0)
{
showBlocchi = false;
showUdc = true;
}
// controllo se ho un UDC selezionato
if (udc !="")
{
showBlocchi = false;
showUdc = false;
showDetUdc = true;
}
pnlBlocchi.Visible = showBlocchi;
pnlUdc.Visible = showUdc;
pnlDetailUdc.Visible = showDetUdc;
// fix frecce...
if (!showDetUdc)
{
btnUp.Enabled = true;
btnDown.Enabled = true;
btnLeft.Enabled = true;
btnRight.Enabled = true;
btnUp.ImageUrl = "../Images/ArrowUp.png";
btnDown.ImageUrl = "../Images/ArrowDown.png";
btnLeft.ImageUrl = "../Images/ArrowLeft.png";
btnRight.ImageUrl = "../Images/ArrowRight.png";
}
else // ...se showDetUdc --> mostro attivo solo ritorno!
{
btnUp.Enabled = false;
btnDown.Enabled = false;
btnLeft.Enabled = true;
btnRight.Enabled = false;
btnUp.ImageUrl = "../Images/ArrowUpDisab.png";
btnDown.ImageUrl = "../Images/ArrowDownDisab.png";
btnLeft.ImageUrl = "../Images/ArrowLeft.png";
btnRight.ImageUrl = "../Images/ArrowRightDisab.png";
}
}
/// <summary>
/// va alla pagina dei buttons principale
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnButtonsHome_Click(object sender, EventArgs e)
{
Response.Redirect("~/Search.aspx");
}
/// <summary>
/// cambio index
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grViewMag_SelectedIndexChanged(object sender, EventArgs e)
{
idxBlocco = Convert.ToInt32(grViewMag.SelectedDataKey["IdxBlocco"].ToString());
showData();
}
#region gestione frecce area MAG/Udc
/// <summary>
/// Mag: richiesto di salire di 1 riga
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUp_Click(object sender, ImageClickEventArgs e)
{
// controllo se sono in modalità Mag
if (idxBlocco < 0)
{
MoveUpMag();
}
else // modalità UDC
{
MoveUpUdc();
}
}
/// <summary>
/// Mag: richiesto di scendere di 1 riga
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDown_Click(object sender, ImageClickEventArgs e)
{
if (idxBlocco < 0)
{
MoveDownMag();
}
else
{
MoveDownUdc();
}
}
/// <summary>
/// Mag: richiesto passare a dettaglio!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRight_Click(object sender, ImageClickEventArgs e)
{
// controllo se sono in modalità Mag
if (idxBlocco < 0)
{
reqDetailMag();
}
else // modalità UDC
{
reqDetailUdc();
}
}
/// <summary>
/// Mag: richiesto passare a pag precedente
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnLeft_Click(object sender, ImageClickEventArgs e)
{
// controllo se sono in modalità Mag
if (idxBlocco < 0)
{
resetSearch();
}
else // modalità UDC
{
// controllo se c'è UDC e quindi richiesta dettaglio UDC
if (udc != "")
{
resetDetailUdc();
}
else
{
resetUdc();
}
}
}
#endregion
#region gestione operazioni spostamento/dettaglio su gridview
/// <summary>
/// sposta UP selezione blocco MAG
/// </summary>
private void MoveUpMag()
{
int i = grViewMag.SelectedIndex;
// condizione 1: sono entro la pagina
if (i > 0)
{
grViewMag.SelectedIndex = grViewMag.SelectedIndex - 1;
}
else
{
// condizione 2: ho altre pagine precedenti
if (grViewMag.PageIndex > 0)
{
grViewMag.PageIndex = grViewMag.PageIndex - 1;
// seleziono prima riga
grViewMag.SelectedIndex = grViewMag.PageSize - 1;
}
}
}
/// <summary>
/// sposta DOWN selezione blocco MAG
/// </summary>
private void MoveDownMag()
{
int i = grViewMag.SelectedIndex;
// condizione 1: sono entro la pagina
if (i < grViewMag.Rows.Count - 1)
{
grViewMag.SelectedIndex = grViewMag.SelectedIndex + 1;
}
else
{
// condizione 2: ho altre pagine successive
if (grViewMag.PageIndex < grViewMag.PageCount)
{
grViewMag.PageIndex = grViewMag.PageIndex + 1;
// seleziono prima riga
grViewMag.SelectedIndex = 0;
}
}
}
/// <summary>
/// richiesta dettaglio Mag
/// </summary>
private void reqDetailMag()
{
idxBlocco = Convert.ToInt32(grViewMag.SelectedDataKey["IdxBlocco"].ToString());
grViewUdc.SelectedIndex = 0;
grViewUdc.PageIndex = 0;
showData();
}
/// <summary>
/// reset a ricerca
/// </summary>
private void resetSearch()
{
Response.Redirect("~/Search.aspx");
}
/// <summary>
/// sposta UP selezione blocco UDC
/// </summary>
private void MoveUpUdc()
{
int i = grViewUdc.SelectedIndex;
// condizione 1: sono entro la pagina
if (i > 0)
{
grViewUdc.SelectedIndex = grViewUdc.SelectedIndex - 1;
//grViewUdc.DataBind();
}
else
{
// condizione 2: ho altre pagine precedenti
if (grViewUdc.PageIndex > 0)
{
grViewUdc.PageIndex = grViewUdc.PageIndex - 1;
// seleziono prima riga
grViewUdc.SelectedIndex = grViewUdc.PageSize - 1;
}
}
grViewUdc.DataBind();
}
/// <summary>
/// sposta DOWN selezione blocco UDC
/// </summary>
private void MoveDownUdc()
{
int i = grViewUdc.SelectedIndex;
// condizione 1: sono entro la pagina
if (i < grViewUdc.Rows.Count - 1)
{
grViewUdc.SelectedIndex = grViewUdc.SelectedIndex + 1;
//grViewUdc.DataBind();
}
else
{
// condizione 2: ho altre pagine successive
if (grViewUdc.PageIndex < grViewUdc.PageCount)
{
grViewUdc.PageIndex = grViewUdc.PageIndex + 1;
// seleziono prima riga
grViewUdc.SelectedIndex = 0;
}
}
grViewUdc.DataBind();
}
/// <summary>
/// UDC: richiesto passare a dettaglio!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void reqDetailUdc()
{
udc = grViewUdc.SelectedDataKey["UDC"].ToString();
showData();
}
/// <summary>
/// reset ricerca UDC
/// </summary>
private void resetUdc()
{
idxBlocco = -1;
grViewMag.SelectedIndex = 0;
grViewMag.PageIndex = 0;
grViewMag.DataBind();
showData();
}
/// <summary>
/// reset ricerca dettaglio UDC
/// </summary>
private void resetDetailUdc()
{
udc = "";
grViewUdc.DataBind();
showData();
}
#endregion
}
}