如何在asp.net中回发后管理列表框状态

时间:2013-09-26 09:45:48

标签: javascript asp.net listbox

我有两个用于来回移动列表项的列表框。我正在使用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 + ",";
}

0 个答案:

没有答案