Avatar billede pablopablo Nybegynder
17. august 2006 - 23:37 Der er 16 kommentarer og
1 løsning

Newbie spg.

Hey...

Jeg rodet på asp.net 2.0...et meget simpelt spg...

jeg har et hyperlink på en af mine content pages...hvordan tilgår jeg det i koden fra en anden content page...?

PabloPablo
Avatar billede snepnet Nybegynder
17. august 2006 - 23:40 #1
Hvad i alverden skulle du dog gøre det for?
Vil du fra e side ændre et link på den side du kommer til?
Mvh
Avatar billede pablopablo Nybegynder
17. august 2006 - 23:47 #2
hihi...:P yep...dvs. en upload side ændre indholdet på en download side...så ja, hyperlinkets Text og NavigateUrl properties skal jeg have fat i...
Avatar billede snepnet Nybegynder
18. august 2006 - 00:12 #3
På den side du kommer til, må du manipulere det du skal vise udfra det der er postet.
Du skal ikke fra den side der postes fra pille ved den side der efterfølgende vises.
Hvis du vil hente oplysninger fra den side du kommer fra, kan du sætte PostBackUrl til en anden side, og i koden på den side kan du så:

if(!IsPostBack)
{
  Page previousPage = Page.PreviousPage;
  if(previousPage != null)
  {
    // ... her kan du så kigge på siden du kommer fra
  }
}

Det der så er balladen er, at du dels skal udstille de oplysninger du vil have fat i fra sender-siden som public metoder/properties, og du skal kende typen på siden for at tilgå dem.

Hedder din klasse (for den side du kommer fra) SenderPage kan du:
if(!IsPostBack)
{
  SenderPage sender = Page.PreviousPage as SenderPage;
  if(sender != null)
  {
    HyperLink link = sender.Link;
  }
}

Hvilket så igen kræver, at du gør dit hyperlink pulic på den side du kommer fra, eller bedre endnu - laver en property der indpakker det du ønsker at kunne tilgå - f.eks.:

public string LinkText
{
  get
  {
    return someLink.Text;
  }
}

Du kan også sætte sender-siden type i et directive på din modtager side - så undgår du at caste PreviousPage til din egen type.

Mvh
Avatar billede pablopablo Nybegynder
18. august 2006 - 00:27 #4
okay, nu har jeg lavet en get/set metode i code behind filen af download siden...men hvordan tilgår jeg dem fra min upload side...?
Avatar billede pablopablo Nybegynder
18. august 2006 - 00:39 #5
siderne er total uafhængige af hinanden...det er to seperate .aspx sider man kan tilgå via min menu...dvs. man kommer ikke fra nogen bestemt side eller lign. som du måske antager...!?
Avatar billede snepnet Nybegynder
18. august 2006 - 00:40 #6
Som skrevet ovenover propertien :o)
(Sig til hvad det er for noget af det du er i tvivl om)
Mvh
Avatar billede snepnet Nybegynder
18. august 2006 - 00:45 #7
Det antager jeg naturligvis.... Kan ikke se noget formål med at ændre noget på en side hvis man ikke er på vej til at se den.
Den findes jo ikke før den eksekveres ved tilgang.

Hvis det du er ude efter er, at gemme en tilstand i din applikation, som du så vil bruge på vilkårlige sider - har du en masse andre muligheder til rådighed.
QueryString, Cookies, Sessionstate, Applicationstate, Cache, Profiles og statiske og/eller "globale variable" + context.
Desuden kan du self. lave din egen customløsning.

Fortæl hvad det er fra den ene side du gerne vil have vist på en anden side (hvis en bruger skulle hoppe hen på den).
Og... Fortæl om det der skal vises på den anden side er specifikt for den enkelte bruger, eller om det er fælles for alle brugere.

Mvh
Avatar billede pablopablo Nybegynder
18. august 2006 - 01:03 #8
okay...here we go...all brugere kan tilgå en download side...
fra administration-upload-siden skal det være muligt, at udskifte en af de tilgængelig filer(hyperlinks) som befinder sig på download siden.

Dvs. hvis brugerne NU kan hente en fil ved navn "fil1.zip" fra download siden...skal det fra admin siden være muligt at uploade en fil som fx. hedder "ny_fil.zip" og den skal nu erstatte fil1.zip, da det i dette tilfælde, kun må være den nyeste fil som må ligge på serveren.

I code behind filen til upload side, findes naturligvis click metoden som gør:
- den eksisterende fil bliver slettet
- den nye fil bliver uplaodet

og det sidste jeg så ønskede var, at rette hyperlinket på download siden i samme metode, så var alt nemlig klaret ét sted.

Jeg ER klar over, at jeg kunne gemme teksten "ny_fil.zip" i session objektet eller lign...og så opdatere det hvér gange brugeren klikker på download i menuen...dette finder jeg sog ikke optimalt...

Det var en lang forklaring på noget umiddelbart ret simpelt...hehe...håber du er mere med nu...?
Avatar billede snepnet Nybegynder
18. august 2006 - 01:38 #9
Nej det er bestemt heller ikke optimalt - det vil jo i givet fald forsvinde når din applikation genstarter.
Jeg ville bare generere listen udfra de filer der aktuelt ligger i folderen... Et hurtigt eksempel på en oversigt over filer:

// i page_load:
GridView grid = new GridView();
form1.Controls.Add(grid);

if(!IsPostBack)
{
  grid.DataSource = System.IO.Directory.GetFiles(<din path>);
  grid.DataBind();
}

Har du et gridview på siden:
<asp:GridView id="grid" runat="server" />

Kan du self. blot (i page_load)
if(!IsPostBack)
{
  grid.DataSource = System.IO.Directory.GetFiles(<din path>);
  grid.DataBind();
}

Bemærk at du kan få mange flere oplysninger om filerne, hvis du benytter DirectoryInfo istedet, så du istedet databinder til GetFiles på et DirectoryInfo objekt.

System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo();
grid.DataSoure = dirInfo.GetFiles();
grid.DataBind();

Mvh
Avatar billede pablopablo Nybegynder
18. august 2006 - 02:36 #10
har ik prøvet det endnu...men underligt nok, var det også min oprindelige tanke...hehe, det er vist for sent...:)
jeg prøver det om lidt...MEN

...hvis vi nu blot for teoriens skyld skal gøre det med hyperlinket færdigt...så MÅ det da være muligt, at lave en get/set metode for en content page's control og så tilgå den fra en anden side af...?

Ligesom man fx. kan tilgå noget på master pagen fra alle div. content pages, like this: ((MasterPage)Master).HeaderImage1 = "~/Images/banner3.jpg";

Så må det da også være muligt, at tilgå en control på en content pages fra en anden content page...oder was??

Jeg har i masterpages lavet en get/set metode,
Avatar billede snepnet Nybegynder
18. august 2006 - 08:25 #11
Du kan tilgå indholdet på en contentpage fra en anden contentpage som beskrevet.... Du kan få så vidt lade én contentpage kontruere en ny contentpage og vise den hvis du vil, så det er ikke fordi du ikke har mulighederne.
Men.... du kan ikke sidestille relationen mellem en content og en master, med den mellem 2 contentpages. I det sidste tilfælder er der ingen relation med mindre du selv skriver den f.eks. som vist.
På ethvert givet tidspunkt når du har en contentpage - vil din masterpage også være i live, hvilket overhovedet ikke er tilfældet mellem contentpages.
Mvh
Avatar billede pablopablo Nybegynder
18. august 2006 - 20:48 #12
hej igen...yes, at med på teorien bag dit sidste indlæg...men forstå stadig ikke hvordan jeg tilgår get/set metode i en content page fra en anden...NU hvor de er total uafhængige. Dvs. ikke kommer i en bestemt rækkefølge eller noget. Derfor kan jeg vel ikke for PreviousPage osv. til noget...du må meget gerne skrive noget ny kode, hvis du er med på hvad jeg mener.
Avatar billede snepnet Nybegynder
19. august 2006 - 09:45 #13
Jeg er ikke med på hvad du mener...?
Hvad er det den  nye kode skal kunne - som den gamle ikke kan?

Du må lægge den tilstand der påvirker dine sider et sted hvor de sider der er involveret i scenariet kan nå dem. Der er som nævnt masser af muligheder for det.

Mvh
Avatar billede pablopablo Nybegynder
19. august 2006 - 16:10 #14
det er nu meget simpelt...jeg har en menu som indeholde 5 punkter...bla. et som hedder "Download" og et andet som hedder "Upload". På upload siden jeg man uploade en fil til en given mappe på serveren.
Når man klikker på Download punktet...så har jeg lavet noget kode i sidens-load metode, som gør følgende: Finder filnanvnet på den eksisterende fil i den mappe som ligger i upload mappen på serveren. Udfra dette, sættes hyperlinkets Text og NavigateUrl property på download siden, således at brugeren nu kan se det nye filnavn og selvfølgelig kan hente filen.

Sådan har jeg lavet det nu! og det virker fint...kan ikke rigtig se andre måder at gøre det på, idet at siderne er fuldstændig uafhængige af hinanden og man jo aldrig ved hvornår der sidst er blevet uploadet en ny fil fra upload siden af...men ret mig hvis jeg er gal på den! :)
Avatar billede snepnet Nybegynder
19. august 2006 - 16:23 #15
Hvad skulle jeg rette - jeg synes sådan set det var det jeg foreslog.
Mvh
Avatar billede pablopablo Nybegynder
19. august 2006 - 18:00 #16
okay...jamen så har jeg nok misforstået noget et sted..:)
Det virker i hvert fald...det er det vigtigeste - så læg et svar! ;)
Avatar billede snepnet Nybegynder
19. august 2006 - 18:30 #17
Det var det med at du genererede dine links udfra hvad der lå i filsystemet...
Mvh
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