HowTo: get request.form[i].name

  • Thread starter Thread starter Wilhelm Pieper
  • Start date Start date
W

Wilhelm Pieper

Hello,

HowTo: catch name/value pairs from request.form?

My viewstate shows:
"__VIEWSTATE=..&111=5.."
I want to get this pairs of IDs/names [111] and values [5].
But because the DropDownList ist dynamically created I don't know the
name/ID of the created list. I can parse the viewState string to get the
related name/value pairs, but I think there will be a more simple way
provided by the request-object??

wkr: Wilhelm Pieper
 
Hi,

I don’t know how you get the data from __viewstate field. This data is
handling by the LosFormatter class. This class serializes the values of
the controls into string presentation. The data format in the
__viewstate isn’t in key=value format.

Anyway you can get data from the Form Collection:
string x = Request.form["myTextControl"];

Natty Gur, CTO
Dao2Com Ltd.
28th Baruch Hirsch st. Bnei-Brak
Israel , 51114

Phone Numbers:
Office: +972-(0)3-5786668
Fax: +972-(0)3-5703475
Mobile: +972-(0)58-888377

Know the overall picture
 
I don't know how you get the data from __viewstate field. .. Debugger :-)

Anyway you can get data from the Form Collection:
string x = Request.form["myTextControl"];
But I don't know the name "myTextControl".
When getting the request.forms string I loop through this string and get
the values I'm looking for but not the names related to this items:
for (int i=0;i<Request.Form.Count;i++)

Double dTmp = Convert.ToDouble(Request.Form.ToString());


if (dTmp > 0) ..
 
OK,

1)using debugger nice :-).

2)What you really after? viewstate will return the last state of the
control on the server while Form collection holds the values that sends
from the client.

Any way if you want you can:
1) Use the LosFormatter class to get the cached data from the
__viewstate field.
2) Loop through the form elements (as you already did) to get the data
Send from the client
3) Loop through the WebForm controls to get their current values (the
cached data and the one that changed by the user).

Natty Gur, CTO
Dao2Com Ltd.
28th Baruch Hirsch st. Bnei-Brak
Israel , 51114

Phone Numbers:
Office: +972-(0)3-5786668
Fax: +972-(0)3-5703475
Mobile: +972-(0)58-888377

Know the overall picture
 
Hello Natty,

thanks to your reply.
Because your solution looks a little bit more code I tried
string[] strRequest = Request.Form.ToString().Split('&');

This returns all pairs I'm interested in in an easy to parse array like:
"112=5", "113=4" and so on.


...
1) Use the LosFormatter class to get the cached data from the
__viewstate field.
Isn't this the same like Request.Form.ToString()??
2) Loop through the form elements (as you already did) to get the data
Send from the client
3) Loop through the WebForm controls to get their current values (the
cached data and the one that changed by the user).
I could (probably) do, but I'm not shure with this because my controls are
added on the fly.
So they may be not part of the controls collection.

wkr: Wilhelm Pieper
 
I think you have a fundimental misunderstanding of .Net

you DON"T need access to viewstate. The value of your control is
automatically restored in your application on post-back. You query it's
value then.

These three properties should give you what you want

"DropDownControl.SelectedValue"
"DropDownControl.SelectedIndex"
"DropDownControl.SelectedItem"

..Net removes you from dealing with the behind the scene plumbing of the
web - GONE are the days of splitting on "&" etc etc etc.
(unless you are a PHP pup (doh!))
 
Back
Top