Dunque, non so se si possa fare in modo diverso
; io faccio così.
Ho un controllo utente, composto semplicemente da un TextBox e da un pulsante.
Il mio obiettivo è di referenziare il TextBox da client, supponendo che nella pagina siano presenti più controlli.
Decido di creare una function javascript così strutturata:
nomeusercontrol_nomefunzione
dove, nomeusercontrol lo conosco perchè lo impongo io, nomefunzione lo conosco perchè lo leggo nella documentazione del controllo...
comunque, nel codice del controllo aggiungo:
codice:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim script As String = String.Format("function {0}_get_textbox_id(){{return ""{1}""; }};", Me.ClientID, Me.TextBox.ClientID)
Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "id_textbox", script, True)
End Sub
perciò, se metto nella pagina un controllo con id wp1, la funzione javascript da richiamare sarà wp1_get_textbox_id
esempio
codice:
function Button1_onclick()
{
var id_textbox = null;
if(!self.wp1_get_textbox_id)
return;
id_textbox = self.wp1_get_textbox_id();
document.getElementById(id_textbox).value = (new Date()).toString();
}