53 messaggi dal 15 novembre 2004
Ho una web form con alcuni Button, ciascuno con il proprio codice lato server.
Come posso fare per scatenare l'evento di uno dei button quando l'utente preme invio?
In pratica vorrei creare lo stesso meccanismo dei pulsanti predefiniti nelle applicazioni non web.

Grazie.
#650

dovrebbe fare al caso tuo

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
Puoi usare l'attributo tabindex.

Da w3c.org:

tabindex = number [CN]
This attribute specifies the position of the current element in the tabbing order for the current document. This value must be a number between 0 and 32767. User agents should ignore leading zeros.
The tabbing order defines the order in which elements will receive focus when navigated by the user via the keyboard. The tabbing order may include elements nested within other elements.

Elements that may receive focus should be navigated by user agents according to the following rules:

Those elements that support the tabindex attribute and assign a positive value to it are navigated first. Navigation proceeds from the element with the lowest tabindex value to the element with the highest value. Values need not be sequential nor must they begin with any particular value. Elements that have identical tabindex values should be navigated in the order they appear in the character stream.
Those elements that do not support the tabindex attribute or support it and assign it a value of "0" are navigated next. These elements are navigated in the order they appear in the character stream.
Elements that are disabled do not participate in the tabbing order.
The following elements support the tabindex attribute: A, AREA, BUTTON, INPUT, OBJECT, SELECT, and TEXTAREA.

In this example, the tabbing order will be the BUTTON, the INPUT elements in order (note that "field1" and the button share the same tabindex, but "field1" appears later in the character stream), and finally the link created by the A element.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>A document with FORM</TITLE>
</HEAD>
<BODY>
...some text...
<P>Go to the
<A tabindex="10" href="http://www.w3.org/">W3C Web site.</A>
...some more...
<BUTTON type="button" name="get-database"
tabindex="1" onclick="get-database">
Get the current database.
</BUTTON>
...some more...
<FORM action="..." method="post">
<P>
<INPUT tabindex="1" type="text" name="field1">
<INPUT tabindex="2" type="text" name="field2">
<INPUT tabindex="3" type="submit" name="submit">
</P>
</FORM>
</BODY>
</HTML>

Tabbing keys. The actual key sequence that causes tabbing navigation or element activation depends on the configuration of the user agent (e.g., the "tab" key is used for navigation and the "enter" key is used to activate a selected element).

User agents may also define key sequences to navigate the tabbing order in reverse. When the end (or beginning) of the tabbing order is reached, user agents may circle back to the beginning (or end).


Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
nostromo <nostromo> ha scritto:
#650
dovrebbe fare al caso tuo

ciao marco

Se tutti i textbox devono rispondere ad un unico evento all'enter puoi scrivere banalmente:
Nell'evento Page_Load puoi scrivere:
Page.RegisterHiddenField("__EVENTTARGET", tuoButton.UniqueID)
Ciao
53 messaggi dal 15 novembre 2004
Non mi sono spiegato bene:
ho anche altri controlli (textBox, DropDownList, ecc) che posso utilizzare per impostare alcuni parametri, ma al momento di selezionare Invio sulla tastiera, dovrei ottenere lo stesso risultato che otterrei utilizzando il Button predefinito.
In pratica quello che succede nei motori di ricerca, ma utilizzando un controllo lato server.
Grazie.

Luciano
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Hai provato la mia soluzione? Non funzia?

Ciao
20 messaggi dal 12 maggio 2005
una soluzione un po grossolana è quella di usare per il bottone redefinito un bottone lato server mentre er gli altri un link button.
non è bellissimo ma purtroppo nn ho trovato di meglio.
begio
53 messaggi dal 15 novembre 2004
Grazie andewz, il codice
Page.RegisterHiddenField("__EVENTTARGET", tuoButton.UniqueID)

funziona perfettamente.
Però non mi piace utilizzare codice senza comprenderlo bene... puoi spiegarmi cosa posso farci con il metodo RegisterHiddenField e cosa rappresenta il valore "__EVENTTARGET"?

Grazie ancora.

Luciano
Modificato da luciano.net il 13 settembre 2005 09.20 -

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.