Bottone

domenica 07 settembre 2003 - 16.07

francescoteresa Profilo | Newbie

Ciao ragazzi,

in un ciclo for mi creo diversi bottoni con il response.write. Però il mio problema è che questi bottoni devono avere un onCommand per riuscire a mandare in esecuzione uno script. Come posso fare?

Brainkiller Profilo | Guru

Ciao Francesco,
allora credo ci sia sicuramente un metodo migliore rispetto al Response.Write usato spesso in ASP 3.0 ma raramente in ASP.NET anzi quasi mai.
Esponi dettagliatamente il problema, c'è sicuramente un modo migliore per affrontarlo.
Lo script a cui riferisci è codice server-side cioè codice VB.NET o C# oppure codice Javascript lato client?
Ciao

David

freeteo Profilo | Guru

ciao,
se è quello che penso io, ho avuto lo stesso problema e non sono riuscito a risorverlo!

il mio caso era una pagina che aveva una serie di download caricati dinamicamente da db e volevo contarli...

allora sono ricorso ad una pagina aspx nuova (il mio caso era download.aspx), a cui passo una querystring parametrica (il nome del file), dentro facco il case dell'hyperlink che ha cliccato (ed incrementavo il numero).
cosi l'url completo di querystring lo riesci a creare dinamicamente insieme al bottone...

spero di esserti stato utile
ciao :-)

francescoteresa Profilo | Newbie

Ciao David,
purtroppo non riesco a risolvere il problema.
Io praticamente ho un database di mssql server nel quale ci sono 48 campi.
Da questi 48 campi io faccio una query nella quale mi crea una tabella 6*8.
Le tabella però variano possono essere anche 1*2 e così via, però ovviamente a te non interessa questo.
Però io come appena faccio la query mi creo la tabella con il response.write e con il response.write mi scrivo a video anche l'id della tabella ossia l'id del database.
Quindi supponiamo che nel mio db c'è soltanto una tabella il cui id è 3.
Io faccio la query e mi uscirà scritto così:
Id tabella = 3
e sotto la tabella.
Questo è il mio problema io devo riuscire a copiarmi questo id in una sessione. In pratica vicino alla scitta Id tabella = 3 ci dovrebbe stare un pulsante che mi copierebbe questo id in una sessione.
Spero di esseremi spiegato bene.
Uo programmo in vb

Brainkiller Profilo | Guru

Si si,
ti sei spiegato bene ho capito, perchè non capisco bene dove vuoi arrivare. Forse perchè non ho ben presente il problema nella sua totalità. Cioè tu immagazzini il valore in una Session ma perchè poi da dove lo riprendi e per fare cosa?
Certamente capisco perchè vuoi associare OnCommand ai pulsanti Creati, perchè non potendo gestire la session client side è chiaro che devi farlo server side e quindi ci vuole per lo meno un postback.
Prova a darmi ancora qualche dettaglio. Sono sicuro che esiste una soluzione più pulita.
Ciao

David

francescoteresa Profilo | Newbie

iao David, sono felice che mi abbia capito cmq ti spiego dettagliatamente la cosa:
Allora io ho un db con 48 campi.
Io per prima cosa faccio questa query:
strInserimento = " SELECT * from tabelle "

Dopo mi leggo i risultati della query e li inserisco tutto in una stringa:

strtabellacompleta = "<table width=66% border=1> <tr> <td width=12% align=center>"& ( dtrRicerca( "testo1") ) & "</td> <td width=12% align=center>"& ( dtrRicerca( "testo2").........

Come puoi ben capire queste righe quì sopra sono soltanto una parte di tutta la stringa e come hai caipto testo1 e testo2 sono i camkpi del db che arrivano fino a 48 e come hai ben capito io praticamente mi scrivo la tabella con i campi riempiti presi dal db in un variabile, dove poi alla fine ovviamente faccio il response.write:
response.write(strtabellacompleta)


Però tutto questo sta nel ciclo while che ovviamente si trova subito dopo la query ossia prima della stringa strtabellacompleta:
While dtrRicerca.Read()

e di conseguenza posso sapere anche il mio id:
response.write( "ID:" & dtrRicerca( "id_tabella") & "<br>")

Questo è il prblema, una volta finito il ciclo while, la pagina viene creata, ma però viene creata una semplice pagina html e non posso gestire il buttoclick del bottone che oltretutto nel codice non l'ho ancoara creato.

David a me serve soltanto un bottone in grado di mandarmi in esecuzione un sub, quindi mi serve un semplice onCommand"mandami in esecuzione una sub".
Perchè io nella sub faccio una cosa molto semplice; sul bottone gli scrivo come testo l'id e nella sub gli scrivo di leggere il testo del bottone "ossia l'id" e di salvarmi il testo del bottone "ossia l'id" in un sessione.

Brainkiller Profilo | Guru

Ciao Francesco,
ti ripeto ancora l'approccio che stai usando è errato.
Non puoi più creare delle tabelle usando delle stringhe contententi tag HTML per poi stampare con Response.Write.
Perchè non guardi come funzionano DataGrid, DataList, ecc. Sai che su questo sito non è mai stata usata neanche una volta l'istruzione Response.Write ?

Cmq. se vuoi creare button a runtime puoi fare così in VB.NET, (questo è un esempio che viene da una Winform ma è identico se lo riporti in ASP.NET)

Qui crei un'istanza di un Button setti larghezza, altezza e testo.
Definisci l'evento OnClick. Quando scatterà l'evento dovrebbe essere richiamata la procedura go sotto definita, in cui puoi salvarti nella session il testo del pulsante.

Dim btn As New Button
btn.Width = 100
btn.Height = 20
btn.Text = "CIAO"
AddHandler btn.Click, AddressOf go
panel1.Controls.Add(btn)

Private Sub go(ByVal sender As System.Object, ByVal e As System.EventArgs)
Console.WriteLine("CIAO")
End Sub

Ciao
DAvid
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5