日期:2014-05-16  浏览次数:20403 次

listbox多选实现上下移动 js版和服务器版
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="X200906021128.aspx.cs" Inherits="ListBoxs_X200906021128" %>
<!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 type="text/javascript">
        function MoveUP(fElement)
        {
            if (fElement.options.length == 0 || fElement.options[0].selected) return;
            for (var i = 1; i < fElement.options.length; i++)
            {
                if (fElement.options[i].selected)
                {
                    var text = fElement.options[i].text;
                    var value = fElement.options[i].value;
                    var selected = fElement.options[i].selected;

                    fElement.options[i].text = fElement.options[i - 1].text;
                    fElement.options[i].value = fElement.options[i - 1].value;
                    fElement.options[i].selected = fElement.options[i - 1].selected;
                    
                    fElement.options[i - 1].text = text;
                    fElement.options[i - 1].value = value;
                    fElement.options[i - 1].selected = selected;
                }
            }
        }

        function MoveDown(fElement)
        {
            if (fElement.options.length == 0 || fElement.options[fElement.options.length - 1].Selected) return;
            
            for (var i = fElement.options.length - 1; i > -1; i--)
            {
                if (fElement.options[i].selected)
                {
                    var text = fElement.options[i + 1].text;
                    var value = fElement.options[i + 1].value;
                    var selected = fElement.options[i + 1].selected;

                    fElement.options[i + 1].text = fElement.options[i].text;
                    fElement.options[i + 1].value = fElement.options[i].value;
                    fElement.options[i + 1].selected = fElement.options[i].selected;

                    fElement.options[i].text = text;
                    fElement.options[i].value = value;
                    fElement.options[i].selected = selected;
                }
            }
        }
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ListBox ID="fListBox" runat="server" Height="200px" SelectionMode="Multiple" Width="200px"></asp:ListBox>
        <br />
        <br />
        --- Server Side ------------------------------------------------------
        <br />
        <br />
        <asp:Button ID="btnUp" runat="server" onclick="btnUp_Click" Text="Up" />
        <asp:Button ID="btnDown" runat="server" onclick="btnDown_Click" Text="Down" />
        <br />
        <br />
        --- Client Side ------------------------------------------------------
        <br />
        <br />
        <input type="button" value="UP" onclick="MoveUP(document.getElementById('fListBox'));" />
        <input type="button" value="Down" onclick="MoveDown(document.getElementById('fListBox'));" />
        <br />
         用 Ctrl + 鼠标 或 Ctrl + Shift 鼠标,实现多选或间断多选
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ListBoxs_X200906021128 :