469,643 Members | 2,064 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,643 developers. It's quick & easy.

How to differentiate between click event of multiple server buttons

Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike

Jun 5 '06 #1
5 2242
the wiring is pretty simple. a submit button, is a html form element. take
this simple html, with a text box and two submits.
<html>
<body>
<form name=f1 method=post action="foo1.aspx">
<input type=hidden name=input1 value=hiddenvalue>
<input type=submit name=submit1 value=submit value=value1>
<input type=submit name=submit2 value=submit value=value2>
<button name=button1 value=value3
onclick="document.forms[0].submit()">
</form>
</body>
</html>

if the use clicks on submit button, the browser does a form post including
the name/value pairs of the form elements (input, submit, select and
textarea). there are some rules on which elements are included.

if type=submit button will only be posted if clicked.
if type=checkbox will be included if checked == true
if type=radio will be included if checked == true
the element must be enabled to postbcak its value
if type=image, must be clicked and also sends name_x and name_y values.

if the user clicks submit1, the postback data is

input1=hiddenvalue@submit1=value1

if the user clicks submit2, the postback data is

input1=hiddenvalue@submit2=value2

if the user clicks button1, the postback data is

input1=hiddenvalue

as buttons (which are not a form elements) do not post back values, and a
script triggered postback will not include any type=submit values.

for auto postback controls (like the dropdown), client script fills in a
hidden field named "__EVENTTARGET", where the postback control name is
written, then the client script calls "form.submit()", which will not
include any submit buttons in the postback data.

note: you can also have more than one form, but only the element values of
one of the forms is postedback.
-- bruce (sqlwork.com)
<ma***********@hotmail.com> wrote in message
news:11*********************@g10g2000cwb.googlegro ups.com...
Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike

Jun 5 '06 #2
Lit
Bruce,

If my checkbox was checked to begin with and I uncheck it before I hit the
Submit button then the server knows that I unchecked the checkbox just
because its value was not posted back? What was the reason to have such
rules? more efficient?
Where did "<input type=hidden name=input1 value=hiddenvalue>" come from?
Auto generated?

what is value=submit value=value1 < causing error
do you have an example that works and well formed <html> or xhtml

Lit


"bruce barker (sqlwork.com)" <b_*************************@sqlwork.com> wrote
in message news:ON**************@TK2MSFTNGP03.phx.gbl...
the wiring is pretty simple. a submit button, is a html form element. take
this simple html, with a text box and two submits.
<html>
<body>
<form name=f1 method=post action="foo1.aspx">
<input type=hidden name=input1 value=hiddenvalue>
<input type=submit name=submit1 value=submit value=value1>
<input type=submit name=submit2 value=submit value=value2>
<button name=button1 value=value3
onclick="document.forms[0].submit()">
</form>
</body>
</html>

if the use clicks on submit button, the browser does a form post including
the name/value pairs of the form elements (input, submit, select and
textarea). there are some rules on which elements are included.

if type=submit button will only be posted if clicked.
if type=checkbox will be included if checked == true
if type=radio will be included if checked == true
the element must be enabled to postbcak its value
if type=image, must be clicked and also sends name_x and name_y values.

if the user clicks submit1, the postback data is

input1=hiddenvalue@submit1=value1

if the user clicks submit2, the postback data is

input1=hiddenvalue@submit2=value2

if the user clicks button1, the postback data is

input1=hiddenvalue

as buttons (which are not a form elements) do not post back values, and a
script triggered postback will not include any type=submit values.

for auto postback controls (like the dropdown), client script fills in a
hidden field named "__EVENTTARGET", where the postback control name is
written, then the client script calls "form.submit()", which will not
include any submit buttons in the postback data.

note: you can also have more than one form, but only the element values of
one of the forms is postedback.
-- bruce (sqlwork.com)
<ma***********@hotmail.com> wrote in message
news:11*********************@g10g2000cwb.googlegro ups.com...
Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike


Jun 6 '06 #3
Hi Bruce,
Excellent...Marvelous...
I was looking for exactly such explanation. Thanks.
I am really oblidged for explaining me this stuff. I was really not
aware what is packed in an envelope when a button of type submit is
clicked.
Coupld you please post a link where I can read about this very BASIC
rules of how what elements of a form is posted. Because sometime I use
readonly textboxes and sometimes they are disables and I set is values
using javascript and when I postback I get values for some controls
while not for other controls depending on whether they are READONLY or
Disabled.
Thanks again for sharing this basic but very important to remember
technics.
--Mike

bruce barker (sqlwork.com) wrote:
the wiring is pretty simple. a submit button, is a html form element. take
this simple html, with a text box and two submits.
<html>
<body>
<form name=f1 method=post action="foo1.aspx">
<input type=hidden name=input1 value=hiddenvalue>
<input type=submit name=submit1 value=submit value=value1>
<input type=submit name=submit2 value=submit value=value2>
<button name=button1 value=value3
onclick="document.forms[0].submit()">
</form>
</body>
</html>

if the use clicks on submit button, the browser does a form post including
the name/value pairs of the form elements (input, submit, select and
textarea). there are some rules on which elements are included.

if type=submit button will only be posted if clicked.
if type=checkbox will be included if checked == true
if type=radio will be included if checked == true
the element must be enabled to postbcak its value
if type=image, must be clicked and also sends name_x and name_y values.

if the user clicks submit1, the postback data is

input1=hiddenvalue@submit1=value1

if the user clicks submit2, the postback data is

input1=hiddenvalue@submit2=value2

if the user clicks button1, the postback data is

input1=hiddenvalue

as buttons (which are not a form elements) do not post back values, and a
script triggered postback will not include any type=submit values.

for auto postback controls (like the dropdown), client script fills in a
hidden field named "__EVENTTARGET", where the postback control name is
written, then the client script calls "form.submit()", which will not
include any submit buttons in the postback data.

note: you can also have more than one form, but only the element values of
one of the forms is postedback.
-- bruce (sqlwork.com)
<ma***********@hotmail.com> wrote in message
news:11*********************@g10g2000cwb.googlegro ups.com...
Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike


Jun 6 '06 #4
Hi Lit,
As I understand, It it is server side CheckBox and its viewstate is
TRUE then server can easily differentiate between the true and false
value when user changes it.
When it constructs the page object while postback operation it will
create all server side controls within the page andd set its properties
using "__ViewState". After that it checks to see the posted values and
applies them.
Now if the checkbox was originally checked then its value will be there
in "__ViewState". If user clears it and performs a PostBack then server
will first create checkbox with its original value i.e. checked=TRUE.
Then it will query the posted values in the Request.Form() collection.
If it does not find a checkbox in collection (as stated in Bruce's
post, if a checkbox is cleared it is not postedback) then the framework
will clear the checkbox value i.e. Checked=FALSE.
I hope this answers your question.
--Mike

Lit wrote:
Bruce,

If my checkbox was checked to begin with and I uncheck it before I hit the
Submit button then the server knows that I unchecked the checkbox just
because its value was not posted back? What was the reason to have such
rules? more efficient?
Where did "<input type=hidden name=input1 value=hiddenvalue>" come from?
Auto generated?

what is value=submit value=value1 < causing error
do you have an example that works and well formed <html> or xhtml

Lit


"bruce barker (sqlwork.com)" <b_*************************@sqlwork.com> wrote
in message news:ON**************@TK2MSFTNGP03.phx.gbl...
the wiring is pretty simple. a submit button, is a html form element. take
this simple html, with a text box and two submits.
<html>
<body>
<form name=f1 method=post action="foo1.aspx">
<input type=hidden name=input1 value=hiddenvalue>
<input type=submit name=submit1 value=submit value=value1>
<input type=submit name=submit2 value=submit value=value2>
<button name=button1 value=value3
onclick="document.forms[0].submit()">
</form>
</body>
</html>

if the use clicks on submit button, the browser does a form post including
the name/value pairs of the form elements (input, submit, select and
textarea). there are some rules on which elements are included.

if type=submit button will only be posted if clicked.
if type=checkbox will be included if checked == true
if type=radio will be included if checked == true
the element must be enabled to postbcak its value
if type=image, must be clicked and also sends name_x and name_y values.

if the user clicks submit1, the postback data is

input1=hiddenvalue@submit1=value1

if the user clicks submit2, the postback data is

input1=hiddenvalue@submit2=value2

if the user clicks button1, the postback data is

input1=hiddenvalue

as buttons (which are not a form elements) do not post back values, and a
script triggered postback will not include any type=submit values.

for auto postback controls (like the dropdown), client script fills in a
hidden field named "__EVENTTARGET", where the postback control name is
written, then the client script calls "form.submit()", which will not
include any submit buttons in the postback data.

note: you can also have more than one form, but only the element values of
one of the forms is postedback.
-- bruce (sqlwork.com)
<ma***********@hotmail.com> wrote in message
news:11*********************@g10g2000cwb.googlegro ups.com...
Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike



Jun 6 '06 #5
Hi Bruce,
Excellent...Marvelous...
I was looking for exactly such explanation. Thanks.
I am really oblidged for explaining me this stuff. I was really not
aware what is packed in an envelope when a button of type submit is
clicked.
Coupld you please post a link where I can read about this very BASIC
rules of how what elements of a form is posted. Because sometime I use
readonly textboxes and sometimes they are disables and I set is values
using javascript and when I postback I get values for some controls
while not for other controls depending on whether they are READONLY or
Disabled.
Thanks again for sharing this basic but very important to remember
technics.
--Mike
bruce barker (sqlwork.com) wrote:
the wiring is pretty simple. a submit button, is a html form element. take
this simple html, with a text box and two submits.
<html>
<body>
<form name=f1 method=post action="foo1.aspx">
<input type=hidden name=input1 value=hiddenvalue>
<input type=submit name=submit1 value=submit value=value1>
<input type=submit name=submit2 value=submit value=value2>
<button name=button1 value=value3
onclick="document.forms[0].submit()">
</form>
</body>
</html>

if the use clicks on submit button, the browser does a form post including
the name/value pairs of the form elements (input, submit, select and
textarea). there are some rules on which elements are included.

if type=submit button will only be posted if clicked.
if type=checkbox will be included if checked == true
if type=radio will be included if checked == true
the element must be enabled to postbcak its value
if type=image, must be clicked and also sends name_x and name_y values.

if the user clicks submit1, the postback data is

input1=hiddenvalue@submit1=value1

if the user clicks submit2, the postback data is

input1=hiddenvalue@submit2=value2

if the user clicks button1, the postback data is

input1=hiddenvalue

as buttons (which are not a form elements) do not post back values, and a
script triggered postback will not include any type=submit values.

for auto postback controls (like the dropdown), client script fills in a
hidden field named "__EVENTTARGET", where the postback control name is
written, then the client script calls "form.submit()", which will not
include any submit buttons in the postback data.

note: you can also have more than one form, but only the element values of
one of the forms is postedback.
-- bruce (sqlwork.com)
<ma***********@hotmail.com> wrote in message
news:11*********************@g10g2000cwb.googlegro ups.com...
Hi,
I have been developing web applications for a while now.
However, as I was thinking through the architecture I really don't
understand the "How server can identify between which buttons has made
the postback request.???"
for e.g.
I have a webpage default.aspx.
I place TWO or more server buttons on it.
Create server-side event handlers for each of the buttons.

Now run the application. If I look at the source HTML generated, it
shows "INPUT" element of type "SUBMIT" for each of the buttons and
since it is "SUBMIT" button it does not have any onclick event
associated with it by default.

I am really puzzled on ...
HOW server determines which button has been clicked.

because each time I click different button it really fireas the
appropriate event handlers on the serverr which is correct. But just
want to understand the underlying wiring.
Any lights on this will be greatly appreciated.
Thanks
--Mike


Jun 6 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Mark Lingen | last post: by
1 post views Thread by Galina Grechka | last post: by
2 posts views Thread by mark | last post: by
reply views Thread by Demetri | last post: by
6 posts views Thread by Terry | last post: by
3 posts views Thread by Andreas Wöckl | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.