Usa i command argument, modificandoli ad ogni chiamata dell'evento di cambio sfondo.
codice:
<%@ Page Language="C#"%>
<script runat="server">
protected void Page_Load(Object Src, EventArgs E)
{
if (IsPostBack)
{
Response.Write("IsPostBack");
}
else
{
Response.Write("!IsPostBack");
Sfondo.Attributes.Add("bgcolor", "#00ff00");
}
}
void Cambia_Sfondo(Object Src, EventArgs E)
{
System.Web.UI.WebControls.Button objSrcButton = (System.Web.UI.WebControls.Button)Src;
System.Web.UI.WebControls.Button objButton = null;
//Recuperi il command argument
System.string Tipo = objSrcButton.CommandArgument.ToString();
if (Tipo == String.Empty || Tipo == "1")
{
Sfondo.Attributes.Add("bgcolor", "#0000ff");
objButton = (System.Web.UI.WebControls.Button)Page.FindControl("btButton");
objButton.CommandArgument = "1";
}
else
{
Sfondo.Attributes.Add("bgcolor", "#ff0000");
objButton = (System.Web.UI.WebControls.Button)Page.FindControl("btButton");
objButton.CommandArgument = "0";
}
objButton = null;
objSrcButton = null;
}
</script>
<html>
<body id="Sfondo" runat="server">
<form runat="server">
<asp:Button OnClick="Cambia_Sfondo" Text="Cambia Sfondo" Height="20" Width="80" runat="server" ID="btButton"/>
</form>
</body>
</html>