webForumDet fria alternativet

Validera formulär

.NET

5 svar · 262 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Kan på ett smidigt sätt kontrollera om ett formulär är validerat, och får true eller false beroende på om det klarade sig igenom alla validationer eller inte?

Mvh, Vide

Medlem sedan apr. 20012 266 inlägg
#2

Page.IsValid borde vara svaret på din fråga.

Medlem sedan dec. 19998 577 inlägg
#3

Där var du snabb. :D

Hmm... men då måste något annat vara fel.
Jag har två textfält, båda har en RequiredFieldValidator:

      <asp:TextBox ID="gb_name" MaxLength="20" Runat="server" />
      <asp:RequiredFieldValidator ErrorMessage="Du måste ange ett namn!"
           Runat="server" 
           ID="gb_name_rfv" 
           ControlToValidate="gb_name"
           EnableClientScript="True" />
      <br>
      <br>
      <b>Text:</b>
      <br>
      <asp:TextBox ID="gb_body" MaxLength="2500" Runat="server" Columns="45" Rows="4" TextMode="MultiLine" />
      <asp:RequiredFieldValidator ErrorMessage="Skriv din text i det stora fältet!"
           Runat="server" 
           ID="gb_body_rfv" 
           ControlToValidate="gb_body" />
      <br>
      <asp:Button ID="gb_b1" Runat="server" Text="Skapa inlägg" CssClass="button" CausesValidation="True" OnClick="Create_GBMessage" />

Submitknappen anropar vid OnClick Create_GBMessage.

Create_GBMessage:

		public void Create_GBMessage(object sender, System.EventArgs e)
		{
		  if (Page.IsValid)
		  {
		    string strName = Request.Form[ "gb_name" ];
		    string strBody = Request.Form[ "gb_body" ];
		    string strHUA  = Request.ServerVariables[ "HTTP_USER_AGENT" ];
		    string strRA   = Request.ServerVariables[ "REMOTE_ADDR" ];
  		
		    string strSQL = "insert into guestbook(name, body, HTTP_USER_AGENT, REMOTE_ADDR) " +
		                    " values('"+strName+"', '"+strBody+"', '"+strHUA+"', '"+strRA+"')";
		    database db = new database();
		    db.addDbData( strSQL );
		  }
		}

Oavsett om jag använder Page.IsValid eller RequiredFieldValidators så slinker den igenom och lägger till i databasen.

Medlem sedan apr. 20012 266 inlägg
#4

Ser inte något fel det borde fungera. En annan sak jag la märke till var att du anvnder Request.Form i stället för gb_name.Text?

Medlem sedan dec. 19998 577 inlägg
#5

renholm skrev:

Ser inte något fel det borde fungera. En annan sak jag la märke till var att du anvnder Request.Form i stället för gb_name.Text?

Gammal vana såklart, skall genast byta. ;)

Måste ju vara ett logik fel någonstans. *kollar förvirrat i koden*

Medlem sedan dec. 19998 577 inlägg
#6

Nu funkar det, hade bara glömt att lägga till Page.IsPostBack i if-satsen. ;)

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)