2008-09-10 4 views
2

Je l'ai déjà trouvé cet article:Comment maintenir la position d'un DragPanelExtender entre des publications?

http://www.dotnetcurry.com/ShowArticle.aspx?ID=181&AspxAutoDetectCookieSupport=1

Mais j'ai une situation différente. J'incorpore des hiddenFields à l'intérieur de la page maître et essaye de stocker la position du dragPanel dans ceux-ci. J'utilise javascript pour stocker la position du dragPanel, puis lorsque l'utilisateur clique sur un lien, la nouvelle page est chargée, mais le dragPanel est réinitialisé dans la position de départ.

Y at-il un moyen facile de le faire?

pseudocode:

**this is in MasterPage.master** 


function pageLoad() 

{ 

    // call the savePanelPosition when the panel is moved 

    $find('DragP1').add_move(savePanelPosition); 

    var elem = $get("<%=HiddenField1.ClientID%>"); 

    if(elem.value != "0") 
    { 

     var temp = new Array(); 

     temp = elem.value.split(';'); 

     // set the position of the panel manually with the retrieve value 

     $find('<%=Panel1_DragPanelExtender.BehaviorID%>').set_location(new 

Sys.UI.Point(parseInt(temp[0]),parseInt(temp[1]))); 

    } 

}  


function savePanelPosition() 

{ 
    var elem = $find('DragP1').get_element(); 

    var loc = $common.getLocation(elem); 

    var elem1 = $get("<%=HiddenField1.ClientID%>"); 

    // store the value in the hidden field 

    elem1.value = loc.x + ';' + loc.y; 

}   


<asp:Button ID="Button1" runat="server" Text="Button"/> 

<asp:HiddenField ID="HiddenField1" runat="server" Value="0" 

Cependant, HiddenField n'est pas visible dans la page redirigée, foo.aspx

Répondre

1

Plutôt que de stocker les informations de position dans un champ caché, rangez-le dans un cookie . L'information est petite, donc elle aura un effet minimal sur les performances de chargement de la page.

0

ok donc j'ai eu le truc de glisser au travail, enregistre dans une base de données et tout, amène cool sur mon un 1600X1050 mon tout bon, bien et dandy! MAIS ATTENDEZ! J'apporte la même page sur mon autre écran 1366x768 et les panneaux sont tous éteints. La fonction de sauvegarde enregistre en pixels, de sorte que lorsque vous passez à une autre "résolution", les panneaux sont éteints. tu sais?

P.S. Je pourrais faire apparaître un message indiquant l'utilisateur de changer leurs paramètres de moniteur, lol ...

Questions connexes