Temo che il problema sia sempre il fatto che il tutto è contenuto in un updatepanel a livello di masterpage perchè al momento non riesco a farlo funzionare:
Ho la mia pagina con una multiview con diverse view, in una di queste ho il mio usercontrol.
Lo usercontrol consiste in una gridview con un elenco di "testate" e cliccando una riga dovrei aprire un modalpopup sull'evento onselectedindexchanged.
La gridview ha per ogni riga un linkbutton a cui, sul rowdatabound della gridview attacco il comando di selezione della riga così:
codice:
Protected Sub gridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowDataBound
Dim btn As LinkButton = e.Row.FindControl("selettore")
If Not IsNothing(btn) Then
btn.OnClientClick = Page.ClientScript.GetPostBackEventReference(GridView1, "Select$" + e.Row.RowIndex.ToString())
End If
End Sub
Sull'evento selectedIndexChanged della gridview invece ho tutto il codice che crea il contenuto per la modal Bootstrap (semplicemente valorizzo un literal contenuto nel modal con dei links ai files) e alla fine lancio la visualizzazione del modal con JS
codice:
Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs)
'prendo l'ID della testata e verifico se ci sono documenti collegati
.....
'valorizzo il literal coi links
ltfiles.Text = strsql
'apro il modal di bootstrap
Dim almes As String = "document.getElementById('modalcomfiles').modal('show');"
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "MyScript", almes, True)
End Sub
End Class
Da quello che vedo funziona tutto tranne l'apertura della modal perchè la console del page inspector mi dice
"TypeError: document.getElementById(...) is null"
Se invece uso il selettore jquery per lanciare la modal "$('#modalcomfiles').modal('show')" ottengo "ReferenceError: $ is not defined"