webForumDet fria alternativet

HTML-formulär fungerar inte på .aspx-sida

.NET

8 svar · 590 visningar · startad av edebro

Medlem sedan aug. 2001261 inlägg
Frågan#1

Jag har ett vanligt html-formulär på en aspx-sida;

<form name="quickSearch" action="list.aspx" method="get">
	<br /><input type="text" name="username" size="28" value="Search users" onFocus="this.value=''" />
</form>

Tanken är att man ska skriva in ett användarnamn, trycka enter och sedan ska det värdet skickas som en QueryString till sidan list.aspx.
Problemet är att detta inte sker. Den gör bara en postback till sidan där formuläret är på (formuläret ligger på alla sidor när man är inloggad).
Någon som vet en lösning?

Medlem sedan mars 20023 561 inlägg
#2

Egentligen gör du väl "fel" som försöker posta det till en annan sida. Varför inte ta till vara styrkan i WebForms genom postbacks istället?

Medlem sedan nov. 2003569 inlägg
#3

Egentligen gör du väl "fel" som försöker posta det till en annan sida. Varför inte ta till vara styrkan i WebForms genom postbacks istället?

precis, många gamla asp:are tänker i gamla banor. ni ska tänka windowsprogrammering och inte webprogrammering.

Medlem sedan aug. 2001261 inlägg
#4

Jo förvisso! Jag har en tendens att fortfarande tänka i dom gamla banorna i vissa situationer :|

Ni menar altså typ;

if (textbox.Value.Length > 0)
Response.Redirect("list.aspx?username=" + textbox.Value);

eller?

Medlem sedan aug. 2001261 inlägg
#5

Går det att ange vilken metod som ska triggas när man trycker enter? Jag har denna koden...

<asp:TextBox id="quickSearch" Cols="28" AutoPostBack="true" runat="server" />

Som ni ser är autopostback=true, men kan man inte ange vilken funktion som ska köras då?
Det går givetvis att lösa med en vanlig if (Page.IsPostBack), men det skulle bli lite snyggare med en separat metod.

Medlem sedan maj 2001329 inlägg
#6

En text box har eventet TextChanged kopplat till sig så du kan kalla på detta.

Eventet körs då man ändrat någe i din textbox. Så även en uttabning eller någe annat skulle trigga denna. Alltså kanske inte så som man alltid vill ha det med att användarna skall trycka return för att det skall fungera. För att det skall funka med return måste du skriva ihop ett javascript som sen tex trycker på en knapp.

För även om asp.net i de flesta fall verkar trycka på rätt knapp när du gör en return i textboxar etc. Så kan man inte vara helt säker på vilken knapp den trycker på eftersom alla knappar är submit buttons..alltså triggas den som först är det och inte de andra.

Hur luddigt förklarat som helst..som vanligt, men det går väl att få någe ur att..:OO

Medlem sedan sep. 20026 425 inlägg
#7

Du kan använda dig av onTextChanged.

<asp:TextBox id="quickSearch" Cols="28" AutoPostBack="true"
onTextChanged="procedur_som_ska_koras" runat="server" />
Medlem sedan aug. 2001261 inlägg
#8

Följdfråga!!

Går det att göra detta;

En förvald text står i textboxen, t ex "Search users". När fokusen hamnar på textboxen så ska denna texten försvinna.

Jag tycker det är lite lurigt att man inte längre kan köra med vanliga javascripts :/

Medlem sedan okt. 20005 273 inlägg
#9

edebro skrev:

Jag tycker det är lite lurigt att man inte längre kan köra med vanliga javascripts :/

Det kan du. Titta in följande

[red]
quickSearch.Attributes.Add("onfocus", "this.value=''");
[/red]

mv icaaq

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)