Ho un custom server control che contiene una serie di bottoni, a seconda del bottone premuto tramite javascript popolo con un valore una textbox. ora ho bisogno di poter recuperare quel valore nel postback della pagina ed assegnarlo al viewstate del controllo.

Non so se mi sono spiegato?

  CIAO  CIAO
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????

  CIAO  CIAO
Trovato era una stupidagine:

Public Property Valore() As String
Get
Return CType(ViewState("Valore"), String)
End Get
Set(ByVal Value As String)
If Page.Request.Form(Me.ID & "_valore") = "" Then
ViewState("Valore") = Value
intMeseCorrente = Value
Else
ViewState("Valore") = Page.Request.Form(Me.ID & "_valore")
intValore = Page.Request.Form(Me.ID & "_valore")
End If
End Set
End Property


:)

  CIAO  CIAO

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC