Avatar billede decrypto Nybegynder
11. april 2006 - 21:02 Der er 7 kommentarer og
1 løsning

Request.Form på alle elementer

Hejsa

Er der ikke muligheder til at kunne requeste alle form elementer og slå deres id'er og value op.

FX hvis jeg har 10 input fields og id'er til felterne er dynamiske, kan jeg loope igennem alle mine inputfelter, hvis jeg requester allesammen på een gang og smider dem fx. ned i en hastabel med id værdien som key og værdien i hashtabelen udfra valuen...

Er der nogen der har et eksempel???
Avatar billede dj_uncas Nybegynder
11. april 2006 - 22:39 #1
Request.Form er en collection (NameValueCollection) som så mange andre, så du kan bruge en løkke:

for( int i = 0; i < Request.Form.Count; i++ )
{
    Response.Write( Request.Form[i] + "<br />" );
}

så skulle du få værdien af alle inputs på siden
Avatar billede decrypto Nybegynder
11. april 2006 - 23:19 #2
Vi prøver.....men dvs at _viewstate som ligger i et hidden field også vil komme ud...
Avatar billede decrypto Nybegynder
11. april 2006 - 23:25 #3
Selvom jeg har 5 input felter, så får jeg kun 2 felter ud, hvor det ene er viewstate og den anden er min submitknap. Skal det være serverside input felt kontroller, for at det vil virke?
Avatar billede dj_uncas Nybegynder
12. april 2006 - 09:35 #4
Jeg ved det faktisk ikke.. Jeg har ikke brugt Request.Form før..

Noget andet du kan gøre er at løbe alle kontroller igennem, og se om det er en textbox:

foreach( Control c in Page.Controls )
{
    if( c.GetType() == typeof( TextBox ) )
    {
        Textbox tbx = (TextBox)c;
        Response.Write( tbx.Text + "<br />" );
    }
}
Avatar billede arriva Nybegynder
12. april 2006 - 14:02 #5
Jeg vælger at kalde mine inputs for noget bestemt for at skilne dem fra viewstate etc. Her til at opbygge et parametriseret SQL statement som derefter udfyldes vha. en lign. løkke.

If Request.Form.Keys.Count > 3 Then
Dim item As String
  For Each item In Request.Form
  If item.StartsWith("s_") Then
    sb.Append(item)
    sb.Append("=")
    sb.Append("@" & item)
    sb.Append(",")
  End If
  Next
End if
Avatar billede decrypto Nybegynder
12. april 2006 - 14:10 #6
Kunne man få det i c#???? Så får du points.
Avatar billede arriva Nybegynder
12. april 2006 - 14:21 #7
tjo.. mon ikke det bliver noget a la:

if(request.form.keys.count>3)
{
  string item;
  foreach(item in request.form)
  {
    if(item.startswith("s_")
    {
      sb.append(item);
      sb.append("=");
      sb.append("@" + item);
      sb.append(",");
    }
  }
}

iøvrigt er sb her en stringbuilder. Det kunne også bare være en string, men performance-mæssigt vinder du en del ved at bruge stringbuilder.
Avatar billede decrypto Nybegynder
12. april 2006 - 15:14 #8
Jeg prøver...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester