我有两个用于来回移动列表项的列表框。我正在使用javascript移动这些项目。一切正常,直到这里。单击“应用”按钮后,我需要保持状态。所以,为此,我使用了隐藏字段。但我的问题是,我无法维护列表框的视图状态。如果我点击右移按钮,它的工作正常。但是,如果我单击左移按钮,则状态管理不正确。
var arr = new Array();
function listbox_moveacross(sourceID, destID) {
var src = document.getElementById(sourceID);
var dest = document.getElementById(destID);
var itemArray = [];
for(var count=0; count < src.options.length; count++) {
if(src.options[count].selected == true) {
var option = src.options[count];
if(sourceID == "ctl00_BodyContentPlaceHolder_lbxMoveRight")
{
itemArray[count] = (option.innerHTML);
arr.push(itemArray[count]);
}
else
{
itemArray[count] = (option.innerHTML);
for (var i = arr.length ; i >= 0; i--) {
if (arr[i] == option.innerHTML) arr.splice(i, 1);
}
}
var newOption = document.createElement("option");
newOption.value = option.value;
newOption.text = option.text;
newOption.selected = true;
try {
dest.add(newOption, null); //Standard
src.remove(count, null);
arr.slice(count,null);
}catch(error) {
dest.add(newOption); // IE only
src.remove(count);
}
count--;
}
}
document.getElementById("ctl00_BodyContentPlaceHolder_hdnListItemsForStateGenTab").value = arr + ",";
}
function ApplyButtonclick()
{
document.getElementById("ctl00_BodyContentPlaceHolder_hdnListItems").value = "";
var listMoveRight = document.getElementById('ctl00_BodyContentPlaceHolder_lbxMoveRight');
var listMoveLeft = document.getElementById('ctl00_BodyContentPlaceHolder_lbxMoveLeft').value;
var hdnlistitems = document.getElementById('ctl00_BodyContentPlaceHolder_hdnListItems').value;
var itemArray = [];
var arr = new Array();
var x=document.getElementById("ctl00_BodyContentPlaceHolder_lbxMoveLeft");
var itemArray = [];
//var arr = new Array();
for (var i = 0; i < x.options.length; i++) {
if(x.options[i].selected ==true){
// alert(x.options[i].value);
itemArray[i] = (x.options[i].value);
arr.push(itemArray[i]);
}
}
document.getElementById("ctl00_BodyContentPlaceHolder_hdnListItems").value = arr;
//alert(hdnlistitems.val(arr));
var myarray = new Array();
for (var i = 0; i < x.options.length; i++) {
myarray.push(x.options[i].value);
}
document.getElementById("ctl00_BodyContentPlaceHolder_hdnListItemsForStateGenTab").value = myarray + ",";
}