Avatar billede carstensuurland Nybegynder
31. maj 2007 - 11:41 Der er 5 kommentarer og
2 løsninger

WebControls og PostBack

Hej Eksperter

Hvad skal jeg gøre for, at få en reference til en <asp: kontrol i min CodeBehind fil?

P.t. laver jeg hele tiden en Page.FindControl når jeg skal referere til en bestemt WebControl på min side. Er der ikke mulighed for, at få en fast reference til en bestemt kontrol?

I de gamle VB6 dage kunne jeg vælge min kontrol fra min "kontrol-liste" og efterfølgende vælge hvilket event jeg gerne ville tilføje kode til - den mulighed mangler jeg lidt... Er det overhovedet muligt i .NET 2.0's designer at få denne funktion igen?

Hjælp :-)
Avatar billede kalp Novice
31. maj 2007 - 11:44 #1
Hvis der står runat="server"
så kan du jo også se den i codebehind.

hvis du ikke køre .NET 2.0 så kan du ikke men så skal du bare kopire en reference til den øverst på din side..

så hvis du har en placeholder som har id="Eksperten" så behøver du ikke lave FindControl.. men bare tilføj den i toppen af din codebehind..

dvs.

protected System.Web.UI.WebControls.PlaceHolder Eksperten;

så kan du få fat i den på den måde...

DET ER DEN SAMME.. selv om den bliver defineret på begge sider.. bare navnet er det samme.
Avatar billede kalp Novice
31. maj 2007 - 11:46 #2
en placeholder control defineres som <asp:Placeholder ID="Eksperten" runat="Server"></Placeholder>

på aspx siden.. og i codebehind laver du en linje som jeg beskrev før.

så længe navnet er den samme som id'et så er det den samme som man referere til.. du kan teste selv.
Avatar billede neoman Novice
31. maj 2007 - 13:00 #3
"I de gamle VB6 dage kunne jeg vælge min kontrol fra min "kontrol-liste" og efterfølgende vælge hvilket event jeg gerne ville tilføje kode til - den mulighed mangler jeg lidt... Er det overhovedet muligt i .NET 2.0's designer at få denne funktion igen?"

Når du i designeren vælger en given kontrol, så vises dens egenskaber i vinduet Properties - som du forhåbentligt har åbent et sted på skærmen.  Klik på lyn-ikonet - så ser du en liste af events - dobbeltklik på et eventnavn, så smider den en tom event handler ind i din code-behind fil.
Avatar billede neoman Novice
31. maj 2007 - 13:09 #4
og metode 2 er mens du står i dit kode vindue. Øverst til venstre har du en dropdown, hvor du bl.a. kan vælge kontroller på siden - når du har valgt kontrollen i ddl'en, så kan du i den højre dropdown vælge et event.
Avatar billede neoman Novice
31. maj 2007 - 13:34 #5
og vedr dit første spørgsmål : som Kalp nævner så var det nødvendigt i .NET 1.1 at lave findcontrol-fiksfakserier i code behind for at få fat i en kontrol defineret på aspx-siden. Men så kom MS med den geniale idé at have partielle klasser, således at din code-behind nu blot definerer dele af den samme klasse som aspx-filen. Og derfor er de kontroller, som ligger i ASPX'en, kendt i code-behind.
Avatar billede carstensuurland Nybegynder
01. juni 2007 - 01:10 #6
Tak skal I have. Neoman : Du skal lige komme med et svar - så får I begge point.

P.S.:
Jeg kan godt se, at jeg kan referere direkte til mine kontroller, men jeg er bare "irriteret" over, at jeg i min codebehind fil ikke kan vælge disse kontroller i min "Types" liste. Der har jeg kun selve aspx siden - ikke de <asp: kontroller der ligger på den...
Avatar billede neoman Novice
01. juni 2007 - 09:28 #7
her et svar så, tak:)
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



IT-JOB

PensionDanmark

Business Tester

Danske Commodities A/S

Procurement manager

Udviklings- og Forenklingsstyrelsen

Kontorchef med ansvar for tværgående service management

MAN Energy Solutions

Cloud FinOps Practitioner

Capgemini Danmark A/S

Salesforce CTO - Nordics