Avatar billede cogitans Nybegynder
20. juni 2007 - 11:03 Der er 11 kommentarer

"frames" i ASP.NET 2.0

Der skulle vist være en form for indbygget frame-funktionalittet i asp.net 2.0. Muligvis via "PlaceHolder", "Panel","Literal" eller sådan noget.
Er der en, som kan fortælle mig navnet på elementet, samt vise en simpel implementering ?
(jeg skal bruge en menu, hvori elementernes target åbnes i det omtalte vindue/"frame")
Avatar billede neoman Novice
20. juni 2007 - 11:27 #2
Hvis du er ude efter et vindue på en side, hvor vinduets indhold skal opdateres uden at skulle refreshe resten af siden (tilsvarende frames), så er du nok ude i en UpdatePanel fra AJAX http://ajax.asp.net/docs/overview/UpdatePanelOverview.aspx
Avatar billede cogitans Nybegynder
20. juni 2007 - 11:31 #3
Oh ja, nu kan jeg huske det. Men masterpages var nu vist ikke helt det, jeg søgte. Jeg har nemlig implementeret dem førhen, og så fant jeg en ny mulighed. Masterpages er noget med, at man deler siden op i sektioner og lign., men der skulle vist også være en mulighed for, at lave en form for kasse (box), hvor man kunne vise ting i. Altså som vel har en visningsdatasource, mens masterpages har en side, som datasource. Er der noget om det, eller husker jeg forkert?

(jeg mener nu, at der blev udviklet det her placeholder, kalder jeg dem, som representerer en firkant et sted på siden, som kan plottes ind fra toolbox'en)
Avatar billede neoman Novice
20. juni 2007 - 11:38 #4
Du kan hive en usercontrol ind og lægge den i en placeholder, og ved postback lægge en anden usercontrol samme sted. Usercontrollen kan i princippet være stort set lig med en hel aspx side, og du kunne, i stedet for at navigere fra side til side på sitet, blot lægge forskellige user controller ind, for hvert menu punkt. Men - hver postback kræver at hele siden refreshes  - så det er ikke helt lige som frames.

Hvis du bruger AJAX/UpdatePanel kan en del af siden refreshes, mens resten forbliver uændret ( og brugeren oplever ikke noget "blink").
Avatar billede cogitans Nybegynder
20. juni 2007 - 11:50 #5
Ja, det lyder jo somom, AJAX/UpdatePanel er løsningen - også når man ser ressourcemæssigt på det mht. server osv.. Men hvis jeg har forstået det rigtigt, så er AJAX/UpdatePanel en control udviklet fra en udenforstående enhed - altså ikke udviklet fra Microsoft? Og det var en kontrol udviklet af Microsoft, der kunne løse problemstillingen, som jeg husker det, da jeg rodede med det for 1 års tid siden...
Avatar billede neoman Novice
20. juni 2007 - 11:57 #6
ajax (altså i .net versionen) er lavet af MS - http://ajax.asp.net/ - og hed ATLAS for et år siden. Den er den eneste måde hvorpå du kan få en partiel side opdateting.

Og det er lidt uklart for mig hvad du ønsker - så længe du kan leve med at hele siden refreshes, så kan du jo gøre alt muligt. F.eks. proppe en control ind i en placeholder, gøre en contril visible/invisible eller f.eks. bruge MultiView til at vise/skjule dele af vinduet  - måske er det den du mener.
Avatar billede cogitans Nybegynder
20. juni 2007 - 12:13 #7
Det kan godt være, at det er MultiView, jeg tænker på. Men hvis det udelukkende er ajax, som tilbyder en partiel sideopdatering, så er det da dén, jeg skal bruge. For så må den jo være den mindst ressourcekrævende.
Avatar billede dr_chaos Nybegynder
20. juni 2007 - 12:53 #8
Ajax er ikke meget hurtigere end en hele side opdatering fordi der skal loades store mængder javascript.
Avatar billede cogitans Nybegynder
20. juni 2007 - 12:55 #9
Nu vi er ved det, så har jeg forsøgt at lave et link i en menu på en af siderne i en masterpage. Ved aktivering af linket skulle der åbnes en anden side i i den anden side af masterpagen. Men det virker ikke. Hvorfor ikke?

Har er koden:

master:
...
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="Toolbar" runat="server">
        </asp:ContentPlaceHolder>
        <asp:ContentPlaceHolder ID="Body" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
...

implementering:
...<asp:Content ID="Content1" ContentPlaceHolderID="Toolbar" runat="server">
    <asp:Menu ID="Menu1" runat="server" BackColor="#E3EAEB" DynamicHorizontalOffset="2"
        Font-Names="Verdana" Font-Size="0.8em" ForeColor="#666666" StaticSubMenuIndent="10px">
        <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
        <DynamicHoverStyle BackColor="#666666" ForeColor="White" />
        <DynamicMenuStyle BackColor="#E3EAEB" />
        <StaticSelectedStyle BackColor="#1C5E55" />
        <DynamicSelectedStyle BackColor="#1C5E55" />
        <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
        <Items>
            <asp:MenuItem NavigateUrl="~/dokument.xml" Target="Content2.Content2" Text="Adgang til xml-dokument"
                Value="Adgang til xml-dokument"></asp:MenuItem>
            <asp:MenuItem Text="Adgang til SQL-database" Value="Adgang til SQL-database"></asp:MenuItem>
        </Items>
        <StaticHoverStyle BackColor="#666666" ForeColor="White" />
    </asp:Menu>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="server"> placeholde2test
</asp:Content>
...
Avatar billede neoman Novice
20. juni 2007 - 14:24 #10
Uden at vide bedre, så har jeg mine tvivl om, at du kan "targette" ASP webcontrols på denne måde direkte. Prøv lige at kigge i sourcen på browseren, og se hvordan linket ser ud, samt hvordan din target ser ud: det skulle gerne hænge sammen jo.
Avatar billede cogitans Nybegynder
21. juni 2007 - 09:53 #11
Ah, nu fandt jeg det dokument, hvori jeg havde taget notatter dengang. Det viser sig, at det sikkert var "PanelControls", jeg tænkte på.
Af noter om PanelControls havde jeg skrevet:

Med en PanelControl kan man oprette forskellige ”sider” på én side. Det virker ligesom med ContentPlaceHolders. Her står der blot f.eks. 3 PanelControls over hinanden. Ved kørsel begyndes der så ved en forudbestemt, og ved kode i codebehind kan man sætte de andre PanelControls til usynlige, hvorved illusionen om flere sider opnås.
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