Gå til innhold

LinkButton med EventHandler!


Anbefalte innlegg

Edit: Nytt spm lengre ned...

 

Sitter med en litt morsom sak...

 

Har et tekstfelt (asp:TextBox) på en side, som funker som en søkeside. Så skal jeg ha et popup-vindu som skal komme opp (window.open()). Der skal man få opp alle som matcher søket, og når man klikker på en av de så skal jeg sette en gitt verdi i tekst-feltet i "parent", og gjerne også få den til å klikke på en knapp også...

 

hjelp?

Endret av Manfred
Lenke til kommentar
Videoannonse
Annonse

Her er en enkel demo som viser hvordan man kan få verdier fra popup-vindu tilbake til hovedvindu ved hjelp av hoved.asp og popup.asp.

 

hoved.asp:

 

<html>

<head>

<title>POPUP</title>

<script language="JavaScript" type="text/javascript">

function openWindow(url)

{

popupWin = window.open(url,'popup','width=300,height=300')

}

</script>

</head>

<body>

<input type = text value = "" name = felt size = 20>

<input type = button value = Klikk onclick = "Javascript:openWindow('popup.asp'); ">

</body>

</html>

 

popup.asp

 

<html>

<head>

<title>POPUP</title>

<script>

function select_item(item)

{

opener.felt.value =item;

top.close();

return false;

}

</script>

</head>

<body onLoad="window.focus();">

<a href= "" onClick ='return select_item("ole")'>ole</a><br>

<a href= "" onClick ='return select_item("dole")'>dole</a><br>

<a href= "" onClick ='return select_item("doffen")'>doffen</a>

</body>

</html>

 

NB! Popup.asp må i ditt tilfelle være selve søkemotoren og må genereres "on the fly" ved hjelp av response.write'r som skriver til utstrømmen alle a'tagene, 1 for hvert begrep søkemotoren finner frem til. Videre må det i ditt tilfelle fikses hvordan man får søkebegrepet fra hoved.asp over til popup.asp.

Endret av backup
Lenke til kommentar

Minner om retningslinjenes punkt 10, som blandt annet sier dette om korte meningsløse innlegg:

 

Korte, unødvendige innlegg kun egnet til å øke brukerens antall poster regnes som spam, og kan straffes deretter. Det samme gjelder unødvendig/overdrevet bruk av smiles, eller innlegg som ikke inneholder annet enn smiley's.

Innlegg som strider med dette er fjernet fra tråden. :)

 

(Reaksjoner på moderering tas på PM og ikke i tråden som blir moderert.)

Lenke til kommentar

Halve moroa med .net er at man får mye artigere felt på formene og feltene enn det der. har slitt tidligere med å få tak i feltene som jeg skal...

 

Å skulle gjøre det så "manuelt" å hardkode inn feltnavn og slikt i popup-filen er ikke så enkelt som det burde...

 

En annen ting er at jeg bruker MasterPages, slik at <head> er ikke tilgjengelig fra den spesifikke siden...

Lenke til kommentar
Halve moroa med .net er at man får mye artigere felt på formene og feltene enn det der. har slitt tidligere med å få tak i feltene som jeg skal...

 

Å skulle gjøre det så "manuelt" å hardkode inn feltnavn og slikt i popup-filen er ikke så enkelt som det burde...

 

En annen ting er at jeg bruker MasterPages, slik at <head> er ikke tilgjengelig fra den spesifikke siden...

9025968[/snapback]

 

.ClientID

Lenke til kommentar

Jeg droppa egentlig hele JavaScript-saken og viser søkeresultatene i en Panel på samme siden, men nå har jeg et annet interessant problem:

 

Når jeg søker fylles en asp:Panel med asp:LinkButton, disse har alle en lb.Click += new EventHandler(lb_Click);

 

Men når jeg klikker på disse linkene så skjer det ikke en shit. I alle fall ikke det som er definert i lb_Click...

 

Noen idéer her?

Lenke til kommentar
Jeg droppa egentlig hele JavaScript-saken og viser søkeresultatene i en Panel på samme siden, men nå har jeg et annet interessant problem:

 

Når jeg søker fylles en asp:Panel med asp:LinkButton, disse har alle en lb.Click += new EventHandler(lb_Click);

 

Men når jeg klikker på disse linkene så skjer det ikke en shit. I alle fall ikke det som er definert i lb_Click...

 

Noen idéer her?

9036844[/snapback]

 

Pass på at alle har samme ID (og alle parent også). Husk at du må sette lb.Click += ... for hver eneste request.

Lenke til kommentar

Men...

 

while (reader.Read())
{
 LinkButton lb = new LinkButton();
 lb.Text = reader["first_name"].ToString() + " " + reader["last_name"].ToString() + "<br>";
 lb.Click += new EventHandler(lb_Click);

 searchList.Controls.Add(lb);
}

 

Hvor skal jeg legge kode for å kjenne igjen den enkelte Linken? Jeg må vi hvite hvem av de som er klikket på...

 

Edit: Den koden der er den jeg har nå, og den trigger ikke lb_Click, av en eller annen grunn...

 

Edit2: Det eneste som skjer er at Panelet searchList ikke inneholder en dritt etter postbacken...

Endret av Manfred
Lenke til kommentar

Bruk OnCommand isteden. Da kan du legge med CommandArgument. Mer eller mindre det samme som OnClick bortsett fra at du kan sende med parametere :D

 

Og... du må legge til alle kontrollene for hver eneste postback. De forsvinner ut i det store intet for hver request og må legges tilbake igjen...

 

Hint: OnCreateChildControls

Endret av jorn79
Lenke til kommentar
Men poenget her er jo at disse elementene av LinkButtons lages av søket. Hvordan kan jeg håndtere et klikk på de da? Jeg får ikke dette til å fungere...

9038647[/snapback]

 

Enten:

Søk igjen og generer LinkButton'ene på samme måte.

Eller:

Lagre søket i ViewState og bruk ViewState til å generere LinkButton'ene.

Eller:

Bruk Hyperlink isteden og sett NavigateUrl med QueryString til å hoppe til en side hvor du parser QueryString'n og forstår hva brukeren har trykka på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...