Avatar billede asgerz.dk Nybegynder
05. november 2005 - 12:06 Der er 10 kommentarer og
1 løsning

Husk hvilken div der blev vist?

Hej, jeg har en side med en masse controls, bl.a. nogle System.Web.UI.HtmlControls.HtmlGenericControl som indeholder nogle DIV! Men når jeg laver en postback så viser siden altid min første div, i stedet for at huske den der sidst blev vist! Hvordan kan jeg få den til at huske hvilken div der skal vises?
Avatar billede snepnet Nybegynder
06. november 2005 - 10:47 #1
hvis det er noget der foregår clientsiden - må du gemme fx. et index for sidste div i et skjult felt, som du så samler op serverside, og bruger til at sætte det rigtige div synligt.
mvh
Avatar billede asgerz.dk Nybegynder
06. november 2005 - 11:35 #2
Jamen det var jo netop det jeg ville undgå... siden kan jo huske alt andet (hvad der er valgt i forskellige dropdown osv.) så må det da også være muligt at den kan huske en hvilken div der er skal vises???
Avatar billede snepnet Nybegynder
06. november 2005 - 11:41 #3
hvis du skifter divs clientside er der ikke noget der hjælper dig med at huske det - med mindre du bruger f.eks. en tabcontrol der har den slags funktionalitet indbygget (det er ikke en kontrol der følger med som standard).
men hvis du alligevel benytter noget clientside kode til at skifte mellem divs - er det da meget lidt der skal til for at gemme dit index i et skjult felt.
mvh
Avatar billede asgerz.dk Nybegynder
06. november 2005 - 11:44 #4
jeg er helt med på at det ikke vil kræve så meget, men det er ikke en mulighed for mig at sætte den værdi clientside (jeg koder op i mod et framework der sætter tabs'ne)

Du siger at hvis det sker clientside så er der ikke noget der hjælper mig med at huske... hvem husker så valget af dropdown? det sker jo også clientside...
Avatar billede snepnet Nybegynder
06. november 2005 - 11:50 #5
jeg skrev nu også at hvis du skifter mellem divs clientside... men det er ud fra den forestilling at du renderer en stak divs til browseren, og så har noget clientside kode, som du bruger til at skifte (sætte synligheden) på de eksisterende divs.
men... det ville være meget fint, hvis du skrev lidt om præcis hvad det er du har, og hvordan du skifter imellem dine divs.
du må også meget gerne skrive om du benytter version 1.1 eller 2.0
mvh
Avatar billede asgerz.dk Nybegynder
06. november 2005 - 12:01 #6
He he... Ja...
-Vers. 1.1
-Skifter synligheden med javascript der er genereret automatisk af frameworket...

Min sp. var nu egentlig også mere om style på en HtmlGenericControl ikke blev gemt. (gider ikke bruge så meget tid på det ;-) )
Avatar billede snepnet Nybegynder
06. november 2005 - 12:56 #7
jo - det bliver normalt gemt, hvis du sætter det serverside.

fair nok at du ikke gider bruge for meget tid på det, men prøv det her eksempel - så kan du se hvordan det fungerer.

// scripts i en aspx-fil:
<script language="javascript" type="text/javascript">
function setColor()
{
    document.getElementById("AspxPanel").style.background = "yellow";
    document.getElementById("HtmlPanel").style.background = "yellow";
}

function removeColor()
{
    document.getElementById("AspxPanel").style.background = "";
    document.getElementById("HtmlPanel").style.background = "";
}   
</script>

// en body
<body>
    <form id="form1" runat="server">
    <div> 
    <asp:Panel ID="AspxPanel" runat="server" style="width:220px;height:20px;">&nbsp;</asp:Panel>
    <br />
    <div id="HtmlPanel" runat="server" style="width:220px;height:20px;">&nbsp;</div>
    <br />
    <asp:Button ID="btnSetColorServerside" runat="server" Text="SetColorServerside" OnClick="btnSetColorServerside_Click" Width="220px" />
    <br />
    <asp:Button ID="btnRemoveColorServerside" runat="server" Text="RemoveColorServerside" OnClick="btnRemoveColorServerside_Click" Width="220px" />
    <br /><br />
    <input type="button" onclick="java script:setColor()" value="SetColorClientSide" style="width: 220px" />
    <br />
    <input type="button" onclick="java script:removeColor()" value="RemoveColorClientSide" style="width: 220px" />
    <br /><br />
    <asp:Button ID="btnPostBack" runat="server" Text="Just a postback" Width="220px" /></div>
    </form>
</body>

// og lidt serverside kode
protected void btnSetColorServerside_Click(object sender, EventArgs e)
{
    AspxPanel.BackColor = System.Drawing.Color.Red;
    HtmlPanel.Style["background"] = "red";
}
protected void btnRemoveColorServerside_Click(object sender, EventArgs e)
{
    AspxPanel.BackColor = System.Drawing.Color.Transparent;
    HtmlPanel.Style["background"] = null;
}

du kan sætte/fjerne styles på hhv. et alm html-div, et et aspx-panel (som også renderes til et div).
det kan gøres serverside og clientside, og du kan se hvordan det du gør serverside gemmes, og det du gør clientside ikke gemmes.

tryk f.eks. på SetColorServerside, og derefter alle de gange du vil på knappen "just a postback" - farven bliver der, hvilket ikke er tilfældet hvis du gør det clientside.

mvh
Avatar billede asgerz.dk Nybegynder
08. november 2005 - 16:15 #8
Ja det giver jo desværre god mening...

smid Et svar så kan du få lidt for at pensle det ud for mig ;-)
Avatar billede snepnet Nybegynder
08. november 2005 - 16:17 #9
bare iorden - du får det her :o)
mvh
Avatar billede asgerz.dk Nybegynder
08. november 2005 - 16:24 #10
Super... forøvrigt kan det være at du kan klare følgende?

http://www.eksperten.dk/spm/662791
Avatar billede snepnet Nybegynder
08. november 2005 - 16:29 #11
har lagt et bud der :o)
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