Bronzoil 4 febbraio 2010 alle 14:31
Per spigarmi meglio:
Private intValore As Integer
Public Property Valore() As String
Get
Return CType(ViewState("Valore"), String)
End Get
Set(ByVal Value As String)
ViewState("Valore") = Value
intValore = Value
End Set
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
'INSERISCO BOTTONE 1
writer.AddAttribute(HtmlTextWriterAttribute.Type, "button")
writer.AddAttribute(HtmlTextWriterAttribute.Id, Me.ClientID & "_1")
writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.ClientID & "_1")
writer.AddAttribute(HtmlTextWriterAttribute.Value, " ")
writer.AddAttribute("OnClick", "SelezionaValore(this, '" & Me.ClientID & "')")
writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:100%;height:25px;border:0px;background-color:#E4F0FF")
writer.RenderBeginTag(HtmlTextWriterTag.Input)
'CHIUDO BOTTONE 1
writer.RenderEndTag()
'INSERISCO BOTTONE 2
writer.AddAttribute(HtmlTextWriterAttribute.Type, "button")
writer.AddAttribute(HtmlTextWriterAttribute.Id, Me.ClientID & "_2")
writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.ClientID & "_2")
writer.AddAttribute(HtmlTextWriterAttribute.Value, " ")
writer.AddAttribute("OnClick", "SelezionaValore(this, '" & Me.ClientID & "')")
writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:100%;height:25px;border:0px;background-color:#E4F0FF")
writer.RenderBeginTag(HtmlTextWriterTag.Input)
'CHIUDO BOTTONE 2
writer.RenderEndTag()
'INSERISCO INPUT BOX
writer.AddAttribute(HtmlTextWriterAttribute.Type, "input")
writer.AddAttribute(HtmlTextWriterAttribute.Value, intValore.ToString())
writer.AddAttribute(HtmlTextWriterAttribute.Id, Me.ClientID & "_valore")
writer.AddAttribute(HtmlTextWriterAttribute.Name, Me.ClientID & "_valore")
writer.RenderBeginTag(HtmlTextWriterTag.Input)
'CHIUSURA INPUT BOX
writer.RenderEndTag()
End Sub
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
If (Page.Request.Browser.EcmaScriptVersion.Major > 0) Then
Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "ValidateControl", "function SelezionaValore(ctl, all) { for(i=1; i<=2; i++){var campo = document.getElementById(all + '_' + i); if (campo.name == ctl.name){var valore = document.getElementById(all + '_mese'); valore.value = i;} campo.style.backgroundColor = '#E4F0FF';} ctl.style.backgroundColor = '#0A7FC9';}", True)
Page.ClientScript.RegisterStartupScript(GetType(Page), "ClientCallback", "function ClientCallback() {" & "args=document.getElementById('" & Me.ClientID & "').value;" & Page.ClientScript.GetCallbackEventReference(Me, "args", "CallbackHandler", Nothing, "ErrorHandler", True) + "}", True)
End If
End Sub
Ora funziona tutto correttamente, l'input box mi viene caricato correttamente al click su uno dei due bottoni ed il bottone cliccato mi si colora. Ora vorrei che al Click del bottone oltre queste due cose venga aggiornato il viestat del controllo che se no mi continua a tenere il valore impostato quando si carica il customcontrol sulla pagina.
Come intercetto il postback per il customcontrol e cambio il valore del ViewState????