我有一個div元素,其中包含一個ul元素,該元素在頁面首次加載時從空開始。然後,用戶可以將li元素拖入此div框中,該框將填充ul元素。我需要能夠保留添加到ul容器的li元素,以便在回發後顯示li元素。我怎樣才能做到這一點?保存客戶端html更改
<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>
拖放是用javascript和jquery完成的。所有這些都在asp.net頁面上。當拖拽完成這是執行
function AddToDropBox(obj) {
$(obj).children(".handle").animate({ width: "20px" }).children("strong").fadeOut();
$(obj).children("span:not(.track,.play,.handle,:has(.btn-edit))").fadeOut('fast');
$(obj).children(".play").css("margin-right", "8px");
$(obj).css({ "opacity": "0.0", "width": "284px" }).animate({ opacity: "1.0" });
if ($(".sidebar-drop-box ul").children(".admin-song").length > 0) {
$(".dropTitle").fadeOut("fast");
$(".sidebar-drop-box ul.admin-song-list").css("min-height", "0");
}
if (typeof SetLinks == 'function') {
SetLinks();
}
所以我想下面這段代碼要經過,並得到所有被假設是在下拉框,並把它們放回去的元素代碼。但它沒有把它們添加到它所做的更改到主列表
//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(){
}
您可能希望提供一些更多信息,例如特別用於執行拖放操作的框架。這些工具中的每一種都有不同的方式來實現你想要的。 – NotMe 2010-12-20 19:20:28
當在客戶端完成放置來存儲狀態時,不會向服務器發出AJAX請求,從而使您可以執行所需操作?我可能會感到困惑。我不知道回傳是在哪裏更新到服務器... – gbvb 2011-02-08 22:22:28
您是否嘗試將控件的'.innerHtml'屬性作爲字符串發送到服務器?也許在你的控件中設置'runat = server',你可以在提交整個頁面時自動獲取更新的內容。 – BertuPG 2011-02-11 13:06:02