Avatar billede brian-johansen Nybegynder
09. juli 2007 - 10:40 Der er 6 kommentarer og
1 løsning

Javascript - gem værdi i forbindelse med postback

Hej,
Jeg har et javascript der løbende skriver til et input felt, hvordan gemmer jeg dens værdi når der bliver lavet et postback ?

mvh Brian
Avatar billede snepnet Nybegynder
09. juli 2007 - 11:17 #1
Hvad er det helt præcist der er balladen?

Sådan noget som det her fungerer fint:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="BeforeSubmit();" OnClick="Button1_Click" />

Og lidt java script:
<script language="javascript" type="text/javascript">
function BeforeSubmit()
{
    document.getElementById('TextBox1').value = "blah";
    return true;
}
</script>

Og den værdi der sættes på klienten kan du så uden problemer samle op:
protected void Button1_Click(object sender, EventArgs e)
{
    string s = TextBox1.Text;
}

Mvh
Avatar billede brian-johansen Nybegynder
09. juli 2007 - 11:56 #2
Problemet ligger i at den skriver værdien til mit hiddenfield hver eneste gang jeg scroller i en bestemt DIV tag. Problemet er bare at når man så laver et postback så gemmer den ikke værdien i feltet og den kan derfor ikke huske hvor den skal scrolle hen af.

Java script metoden ser sådan ud.
    function scrollingDetector()
            {           
                // Div tag
                var test = document.getElementById('myTreeBrowser');         
                var pos = test.scrollTop;
                var lbl = document.getElementById('saveScrollPos');
                lbl.value = pos;
            }

Div taget
  <div id="myTreeBrowser" style="height:150px; width:150px; overflow:auto;" onscroll="scrollingDetector()"  >
Indhold
</div>

og min codebehind


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        saveScrollPos.Value = ViewState("sv")
        Dim scriptString = ""
        scriptString = "var test = document.getElementById('myTreeBrowser');test.scrollTop = saveScrollPos.value;"
        scriptString = scriptString + "alert(test + ' '+ saveScrollPos.value);"

        RegisterStartupScript("setPos", "<script>" + scriptString + "</script>")

    End Sub


Grunden til at jeg køre det fra Code behind er at det er dynamisk generet det hele og derfor skal den først køre når jeg har loadet det hele.

Mvh Brian
Avatar billede brian-johansen Nybegynder
10. juli 2007 - 10:19 #3
Har fået overført værdien. Men jeg kan ikke få scrollTop til at virke.... nogen ideer ?

mvh Brian
Avatar billede snepnet Nybegynder
10. juli 2007 - 14:40 #4
Du kan angive MaintainScrollPositionOnPostback="true" i dit page directive.
Mvh
Avatar billede brian-johansen Nybegynder
23. juli 2007 - 10:51 #5
Men det virker vel ikke i firefox og saferi ?

/Brian
Avatar billede brian-johansen Nybegynder
31. juli 2007 - 17:08 #6
Lukker
Tak for din hjælp :D
Avatar billede snepnet Nybegynder
03. august 2007 - 16:20 #7
Det var så lidt.
Det virker fint i FF, men ikke i Safari for Windows (ved ikke med MAC versionen).
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