Avatar billede speedpete Nybegynder
08. februar 2007 - 11:45 Der er 11 kommentarer og
1 løsning

Find forrige kontrol på siden

Er der en måde hvorpå man kan finde den forrige control på siden?

Jeg har en reference til "Fundet", og jeg ved, at der foran "Fundet" er et inputfelt af en slags (Textbox, checkbox, dropdown...), som jeg vil kunne tilgå. Hvordan får jeg lige gjort det?

<asp:EnEllerAndenKontrol ID="FindMig" runat="server"></asp:EnEllerAndenKontrol>
<asp:Label ID="Fundet" runat="server"></asp:Label>
Avatar billede anri Novice
08. februar 2007 - 12:05 #1
Er det server-side?
I så fald må du gennemløbe oprindeligkontrol.parent.controls, huske den aktuelle control, og retunere den hvis nextcontrol=oprindeligcontrol..

Pseudo-kode:
Foreach (control ctrl in oprindeligkontrol.parent.controls){
  if (oprindeligcontrol==ctrl) return gemtcontrol;
  gemtcontrol = ctrl;
}
Avatar billede speedpete Nybegynder
08. februar 2007 - 12:10 #2
Ok, det var også mit bud umiddelbart. Men tak. Kast et svar?
Avatar billede anri Novice
08. februar 2007 - 12:14 #3
Ved du hvad, jeg ser faktisk lige at du kan lave en
oprindeligkontrol.parent.IndexOf(oprindeligkontrol)

Mon ikke du kan trække 1 fra det index og så få det du søger?
Avatar billede anri Novice
08. februar 2007 - 12:16 #4
int i = oprindeligkontrol.parent.IndexOf(oprindeligkontrol);
oprindeligkontrol.parent.controls[i-1];
Avatar billede speedpete Nybegynder
08. februar 2007 - 12:48 #5
Ok, det sidste lyder jo meget nemt. Jeg prøver den så.
Avatar billede speedpete Nybegynder
08. februar 2007 - 12:55 #6
Øhhh.... hvor var det, du så at man kunne det? Er det ikke i javascript? Jeg laver det serverside, så jeg må nok bruge den med at iterere i Parent.Controls.
Avatar billede anri Novice
08. februar 2007 - 17:35 #7
Nej, det er serverside.  IndexOf ligger på den control-collection..  Jeg bruger .NET 2.0, ved ikke om det er gældende for 1.1 også.
Avatar billede speedpete Nybegynder
08. februar 2007 - 19:22 #8
mærkeligt. Jeg synes ikke Google giver noget umiddelbart. Og min intellisens (Visual Studio 2005, .net2), giver ikke noget på Control.Parent.Index...
Avatar billede anri Novice
08. februar 2007 - 20:24 #9
No no..
Det er Control.Parent.CONTROLS.IndexOf()

http://msdn2.microsoft.com/en-us/library/3e5b4ydb(VS.80).aspx
Avatar billede speedpete Nybegynder
09. februar 2007 - 08:50 #10
Ah, ok. Jeg var ellers gået i gang med at sætte Labels om alle de her kontroller. Pointen er, at jeg skal have sat en ramme om inputfelterne. Når jeg finder en Control, så kan jeg vist ikke bruge Styles.Add()? Så jeg skal enten caste dem tilbage til deres oprindelige type (hvordan i givet fald?), eller finde på noget andet? Nogen bud? (Jeg ved godt du har fået pointsne, men du får bare nogle flere).
Avatar billede anri Novice
09. februar 2007 - 09:30 #11
Har jeg forstået det således at du eksempeltvis har et omåde de ser således ud:

Postnummer: [Inputfelt]

Og når d så eksempeltvis har opdaget en forkert indtastning i postnummer, så kommer der en ramme om både label og inputfelt?
Avatar billede speedpete Nybegynder
09. februar 2007 - 12:35 #12
Ja nogenlunde:

Navn: [input] *
Mælk: [] *
Sukker: [] *
Vælg: [dropdown] *

Jeg får en liste med referencer til stjernerne, som så sættes til visible hvis der er en fejl i inputfeltet. Jeg vil så gerne have en ramme om det inputfeltet foran stjernen. Jeg tænker om man kan spørge på Control.GetType, og så caste udfra den oplysning og bruge Style.Add("border","solid 1px red;") på den castede Control?
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
Kurser inden for grundlæggende programmering

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