Files
GMW/GMW_Term/WebUserControls/mod_searchRes.ascx.cs
T
2012-10-02 12:10:17 +02:00

328 lines
10 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);
}
}
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 showUdc = false;
// controllo se ho un idxBlocco sel
if (idxBlocco > 0)
{
showUdc = true;
}
pnlBlocchi.Visible = !showUdc;
pnlUdc.Visible = showUdc;
}
/// <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>
/// recupero idx blocco selezionato
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lsView_SelectedIndexChanged(object sender, EventArgs e)
{
#if false
//lblRes.Text = lsView.SelectedDataKey["IdxBlocco"].ToString(); // ok!
idxBlocco = Convert.ToInt32(lsViewMag.SelectedDataKey["IdxBlocco"].ToString());
showData();
#endif
}
/// <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
{
resetDetailUdc();
}
}
#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;
}
}
}
/// <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;
}
}
}
/// <summary>
/// UDC: richiesto passare a dettaglio!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void reqDetailUdc()
{
//idxBlocco = Convert.ToInt32(grViewMag.SelectedDataKey["IdxBlocco"].ToString());
grViewUdc.DataBind();
}
/// <summary>
/// reset ricerca dettaglio UDC
/// </summary>
private void resetDetailUdc()
{
idxBlocco = -1;
grViewMag.SelectedIndex = 0;
grViewMag.PageIndex = 0;
showData();
}
#endregion
}
}