某个产品已有3种颜色,一共有6种颜色。
在页面上有二个Listbox(lbproduct,lbcolor),存放全部颜色和某个产品的颜色。然后添加按钮处理添加、删除颜色。
想在客户端处理颜色的添加删除。等确定后再点击确定按钮,作最后数据库处理。
最后处理的想法是返回服务器时,可以先删除掉该产品所有颜色,再添加选择的颜色。
否则每一次添加删除都会引发服务器事件。效率太低!
1、在把数据绑定到LISTBOX后,如何在客房端处理事件呢!
2、删除一个颜色后,在lbcolor中就要加一个,这样的代码该如何写啊!
十分感谢!

解决方案 »

  1.   

    绝对用得着:
    private void bt1_Click(object sender, System.EventArgs e)
    {
       if(List1.SelectedIndex == -1)
          JS.Alert("您在列表框一中没有选择项目,无法添加到列表框二中!");
       else if(List2.Items.Contains(List1.SelectedItem))
          JS.Alert("列表二中已包含了项目,不可以再加!");
       else
          List2.Items.Add (new ListItem (List1.SelectedItem.Text,List1.SelectedItem.Value));
    }
      

  2.   

    为什么用客户端,就要想,减轻服务器的负端。
    不过我在CSDN里搜了一下,有这方面的内容。
    谢谢!
      

  3.   

    function DoubleBox1_MoveToRight(){
    var LeftBox=document.getElementById("lbLeft")
    var RightBox=document.getElementById("lbright")
    if (LeftBox.options.length>0){
    if(LeftBox.selectedIndex>=0){
    var DeleteOption=document.createElement("OPTION");
    RightBox.options.add(DeleteOption);
    DeleteOption.innerText=LeftBox.options[LeftBox.selectedIndex].text;
    DeleteOption.value=LeftBox.options[LeftBox.selectedIndex].value;
    LeftBox.options.remove(LeftBox.selectedIndex);
    }
    }
    }function DoubleBox1_MoveToLeft(){
    var LeftBox=document.getElementById("lbLeft")
    var RightBox=document.getElementById("lbright")
    if (RightBox.options.length>0){
    if (RightBox.selectedIndex>=0){
    var DeleteOption=document.createElement("OPTION");
    LeftBox.options.add(DeleteOption);
             DeleteOption.innerText=RightBox.options[RightBox.selectedIndex].text;
    DeleteOption.value=RightBox.options[RightBox.selectedIndex].value;
    RightBox.options.remove(RightBox.selectedIndex);
    }
    }
    } function DoubleBox1_MoveAllToLeft(){
    var LeftBox=document.getElementById("lbLeft");
    var RightBox=document.getElementById("lbright");
    var i=RightBox.options.length-1;
    while (i!=-1){
    var DeleteOption=document.createElement("OPTION");
    LeftBox.options.add(DeleteOption);
    DeleteOption.innerText=RightBox.options[i].text;
    DeleteOption.value=RightBox.options[i].value;
    RightBox.options.remove(i);
    i=i-1;
    }
    }
    function DoubleBox1_MoveAllToRight(){
    var RightBox=document.getElementById("lbLeft");
    var LeftBox=document.getElementById("lbright");
    var i=RightBox.options.length-1;
    while (i!=-1){
    var DeleteOption=document.createElement("OPTION");
    LeftBox.options.add(DeleteOption);
    DeleteOption.innerText=RightBox.options[i].text;
    DeleteOption.value=RightBox.options[i].value;
    RightBox.options.remove(i);
    i=i-1;
    }

    }
    ‘================================================
    客户端处理listbox是可以了,但是返回到服务器时,仍然是开始时从数据库中赋于listbox的值,怎样才能把取得客户端处理后lbright所有的值.
    如果用hidetextbox,老是取到空值。
    当触发按钮是'btchange.Attributes.Add("onClick", "document.Form1.lbvalue.value = ??????")
    谢谢!