html代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="demo.aspx.cs" Inherits="test_demo" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript" >
    //listbox双击事件,当l1或l3双击时,l3或l1中相同索引的数据移动到l2中。
       function ChangeItem1(l1,l2,l3) { 
           var cc = document.getElementById(l1).options[window.document.getElementById(l1).selectedIndex].value;
           var dd = document.getElementById(l1).options[window.document.getElementById(l1).selectedIndex].text;
           var op = new Option(dd, cc, true, true);
           var i = window.document.getElementById(l1).selectedIndex;      
           document.getElementById(l1).options.remove(i);     
           document.getElementById(l3).options.remove(i);
           document.getElementById(l2).options.add(op);
           
       }
     
       function ChangeItem2(l1,l2,l3) { 
           var cc = document.getElementById(l1).options[window.document.getElementById(l1).selectedIndex].value;
           var dd = document.getElementById(l1).options[window.document.getElementById(l1).selectedIndex].text;
           var op = new Option(dd, cc, true, true);
           var oo = new Option(dd,cc,true,true);
           var i = window.document.getElementById(l1).selectedIndex; 
                   document.getElementById(l1).options.remove(i);
           document.getElementById(l2).options.add(op); 
           document.getElementById(l3).options.add(oo);   
       }
      </script>
</head>
<body>
    <form id="myform" runat="server">
<%-- 左侧上边--%>
<select  multiple id="l1"  size=15 style="width:150"  runat="server"  ondblclick='ChangeItem1("l1","l2","l3")'>
  
      </select>
  <input type="button" name="Submit" value="提交" onclick='ChangeItem1("l1","l2","l3")' />
   <%-- 右侧上边--%>
  <select multiple  size=15  style="width:150" id="l2"  runat="server" ondblclick='ChangeItem2("l2","l1","l3")'>
      </select><br />
  <%-- 左侧下边--%>
  <select  multiple   size=15 style="width:150" id="l3"  runat="server" ondblclick='ChangeItem1("l3","l4","l1")'>
  
      </select>
  <input type="button" name="Submit" value="提交" onclick='ChangeItem1("l3","l4","l1")' />
<%-- 右侧下边--%>
  <select multiple  size=15  style="width:150"  runat="server" id="l4" ondblclick='ChangeItem2("l4","l1","l3")'>
      </select><asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
        Text="Button" />
    <br />
</form>
</body>
</html>后台代码using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Letter.BLL;
using Letter.Models;
using System.Collections.Generic;public partial class test_demo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            bind();
        }
    }
    void bind()
    {
        IList<Tb_Company> list_tb_company = Tb_CompanyManager.GetAllTb_Companies();
        foreach (Tb_Company tb_company in list_tb_company)
        {
            string text = tb_company.Num + "-" + tb_company.Title;
            string id = tb_company.Id.ToString();
            ListItem item = new ListItem(text, id);
            this.l1.Items.Add(item);
            this.l3.Items.Add(item);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach(ListItem li in this.l2.Items)
        {
            string i = li.Text;
            string j = li.Value;
        }
    }
}

解决方案 »

  1.   

    主要是取 select 这个控件里的值    
      

  2.   

    好长,,不知道 取什么!那你把 值 ,在前台 放入 隐藏控件!后台去取!
    <input id="dataid" type="hidden" runat="server" />
      

  3.   

    l2 里面的值 我是在前台用js添加的,但是再后台我取不到l2里面的值;run=“server” 我也加上了
        foreach(ListItem li in this.l2.Items) 
            { 
                string i = li.Text; 
                string j = li.Value; 
            } 
    遍历 也取不到
      

  4.   

    hidden 只能存放一个值 但是 select 可以保存 text 和 value 我是要在后台取的;
          而且我要去的是select 里面的多个值
      

  5.   

    <select  multiple  size=15 style="width:150" id="l3"  runat="server" ondblclick='ChangeItem1("l3","l4","l1")'> 是个 下拉框,用双击事件???应该用  onchange 事件吧。。你要后台去 用 <asp:DropDownList ID="111" AutoPostBack="true" runat="server"></asp:DropDownList>
    前台取比较好!
      

  6.   

    吼吼 我要做的的 就是双击 不要下拉列表;
    如果是下拉列表的话,就不用这么麻烦还要谢JS了     而且我做的这个效果出来不是下拉列表,是个类似listbox这样的东西
      

  7.   

    <div>
        <select id="s1" runat="server">
               <option value="1" >sss</option>
               <option value="2" >bbbb</option>
               </select>
               <asp:Button runat="server" ID="btn1111" onclick="btn1111_Click" />
        </div>
     protected void btn1111_Click(object sender, EventArgs e)
            {
                string das = s1.Items[s1.SelectedIndex];
                string fds = s1.Value;
            }取得到。
      

  8.   

    Request.Form("l1") 这个咋用啊? asp.net 里面没有这么用的啊?            
      

  9.   

    转成服务器控件

    使用Request.Form["前台控件名称"]
      

  10.   

    将select 的值 放在服务器端的hidden 中存储的格式为 text,value|text,value|text,value ...用 split('|') 分隔成 多个 text,value 的数组
    遍历它 并用split(',') 分隔  就可获得 对应的 text 和 value 了