如何在回发中保持DragPanelExtender的位置?

时间:2008-09-10 21:08:52

标签: asp.net javascript dom asp.net-ajax

我已经找到了这篇文章:

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

但我有不同的情况。我在主页面中嵌入了一些hiddenFields并试图将dragPanel的位置存储在那些中。

我使用javascript来存储dragPanel的位置,然后当用户点击链接时,会加载新页面,但是dragPanel会重置为起始位置。

有没有简单的方法可以做到这一点?

伪代码:

**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" 

但是, HiddenField 在重定向的页面中不可见,foo.aspx

2 个答案:

答案 0 :(得分:1)

不是将位置信息存储在隐藏字段中,而是将其存储在cookie中。信息很小,因此对页面加载性能的影响很小。

答案 1 :(得分:0)

好的,所以我得到了拖拽的东西,保存在一个数据库和所有,在我的一台显示器1600X1050上带来很酷,一切都很好,很好,花花公子!可是等等!我在我的另一台显示器1366x768上显示相同的页面,面板全部关闭。

保存功能以像素为单位保存,因此当您移动到另一个“分辨率”时,面板将关闭。你知道吗?

P.S。我可以弹出一条消息,说明用户更改他们的显示器设置,哈哈......