Asp.net 保存客户端html更改

Asp.net 保存客户端html更改,asp.net,postback,Asp.net,Postback,我有一个div元素,它包含一个ul元素,当第一次加载页面时该元素开始为空。然后,用户可以将li元素拖动到此div框中,该div框将填充ul元素。我需要能够保留已添加到ul容器中的li元素,以便在回发后显示li元素。我怎样才能做到这一点 <div class="sidebar-drop-box"> <p class="dropTitle"><strong>Drop Box</strong>

我有一个div元素,它包含一个ul元素,当第一次加载页面时该元素开始为空。然后,用户可以将li元素拖动到此div框中,该div框将填充ul元素。我需要能够保留已添加到ul容器中的li元素,以便在回发后显示li元素。我怎样才能做到这一点

<div class="sidebar-drop-box">              
                 <p class="dropTitle"><strong>Drop Box</strong><br />  
                     Drag and drop tracks here temporarily if you’re working with a long playlist.</p>  
                 <ul class="admin-song-list"></ul>  
         </div>
因此,我尝试了下面的代码,遍历并获取所有假定位于下拉框中的元素,然后将它们放回原处。但它并没有将它们添加到下拉框中,而是对主列表进行了更改

//repopulate drop box
    if(document.getElementById("ctl00_cphBody_hfRemoveMedia").value!="")
        {
            var localRemoveMedias=document.getElementById("ctl00_cphBody_hfRemoveMedia").value.split(",");
            $(".admin-left li.admin-song").each(function(){
//                alert("inEach");//WORKS
                for(x in localRemoveMedias)
                {
                    if($(this).attr("mediaid")==localRemoveMedias[x])
                    {
                        AddToDropBox($(this));
                    }
                }//end for
            });//function(){
        }

要在回发过程中保留拖动的元素,我建议您在用户执行拖放操作时将元素ID存储在asp:hiddenfield中


当回发发生时,您的ID将被持久化,您将能够重新创建回发之前的页面状态

对于拖放操作,通常不需要回发。您可以使用Ajax进行服务器端更新,这将完全消除页面状态的创建

苹果和桔子。你为什么要发回?当我开始使用Ajax时,我也在做同样的事情。在一个页面中,我有一点不错的Ajax功能和很多老式的状态驱动viewstatenabled=“true”良好的旧.Net。这是我们在过去10年中所收到的反馈。我在客户端保存更改的状态,然后在服务器上手动维护回发之间的更改。我发现我使用回发的次数越少,我就越是在一种无状态的心态中发展。如果可以避免回发,请向服务器发出Ajax调用并执行您必须执行的操作,返回结果并相应地重新绘制。

您可能需要提供更多信息,例如执行拖放操作时使用的框架。这些工具中的每一个都有不同的方法来实现您想要的功能。当在客户端完成删除操作以存储状态时,向服务器发出AJAX请求不就可以实现您想要的功能吗?我可能会感到困惑。我不确定回发在哪里对服务器进行更新…是否尝试将控件的
.innerHtml
属性作为字符串发送到服务器?也可能在您的控件中设置
runat=server
,您可以在提交整个页面时自动获取更新的内容。
//repopulate drop box
    if(document.getElementById("ctl00_cphBody_hfRemoveMedia").value!="")
        {
            var localRemoveMedias=document.getElementById("ctl00_cphBody_hfRemoveMedia").value.split(",");
            $(".admin-left li.admin-song").each(function(){
//                alert("inEach");//WORKS
                for(x in localRemoveMedias)
                {
                    if($(this).attr("mediaid")==localRemoveMedias[x])
                    {
                        AddToDropBox($(this));
                    }
                }//end for
            });//function(){
        }