arnymore ha scritto:
Sembrava facile.....
la cosa credo sia dovuta al fatto che poltrone nello stesso numero stessa fila(quindi la stessa poltrona ) hanno diversi status a seconda dell'evento e quindi la propietà enabled del chckbox cambia da una volta all'altra
No il problema non è per gli stati del checkbox ma per il fatto che il pannello in cui sono stati inseriti presenta immagini e controlli differenti a seconda del fatto che i checkbox enabled.
se hai ripreso pedissequamente quello che ti ho postato allora noterai che in caso di posto indisponibile carico un'immagine di poltrona disabilitata, ma nel caso sia enabled carico due immagini.
l'ordine dei controlli all'interno del asp:panel cambia dunque se lo stato delle poltrone cambia.
ergo hai due possibilità
1) al cambiare del dropdownlist ricarichi la pagina con un redirect e metti un
?idevento= valore del dropdownlist
oppure
2)modifichi il codice per inserire comunque sempre tre immagini
disabilitato selezionato e libero. poi se il checkbox è disabled metti display none sulle altre immagini mentre se è enabled metti il display none sulle immagini disabilitato e selezionato.
CheckBox cb = fnCreaPoltrona(sp);
PanelPlatea.Controls.Add(cb);
LiteralControl ltl = new LiteralControl("<div style=\"float:left;\">");
PanelPlatea.Controls.Add(ltl);
Image imgDisabilitato = new Image();
PanelPlatea.Controls.Add(imgDisabilitato);
imgDisabilitato.ImageUrl = sUrlPostoDisabilitato;
imgDisabilitato.ToolTip = "Posto non disponibile";
imgDisabilitato.AlternateText = "X";
Image imgLibero = new Image();
Image imgSelezionato = new Image();
PanelPlatea.Controls.Add(imgLibero);
PanelPlatea.Controls.Add(imgSelezionato);
imgLibero.ImageUrl = sUrlPostoLibero;
imgSelezionato.ImageUrl = sUrlPostoSelezionato;
imgSelezionato.ID = "is" + cb.ID;
imgLibero.ID = "il" + cb.ID;
string sTipoPosto = "Fila: " + sp.Split(':')[0] + " Posto: " + sp.Split(':')[1];
imgLibero.ToolTip = sTipoPosto;
imgLibero.AlternateText = sTipoPosto;
imgSelezionato.AlternateText = sTipoPosto;
imgSelezionato.ToolTip = sTipoPosto;
imgSelezionato.Style.Add("display", "none");
imgLibero.Attributes.Add("onclick", "fnSetCheck('" + imgLibero.ClientID.Replace(imgLibero.ID, "") + "','" + cb.ID + "','true')");
imgSelezionato.Attributes.Add("onclick", "fnSetCheck('" + imgSelezionato.ClientID.Replace(imgSelezionato.ID, "") + "','" + cb.ID + "','false')");
if (!cb.Enabled)
{
imgLibero.Style.Add("display", "none");
imgSelezionato.Style.Add("display", "none");
}
else
{
imgDisabilitato.Style.Add("display", "none");
}
LiteralControl ltl2 = new LiteralControl("</div>");
PanelPlatea.Controls.Add(ltl2);