listbox多选实现上下移动 js版和服务器版

当前位置 : 首页 > 网页制作 > CSS > listbox多选实现上下移动 js版和服务器版

listbox多选实现上下移动 js版和服务器版

来源: 作者: 时间:2016-01-29 09:12
%@ Page Language=C# AutoEventWireup=true CodeFile=X200906021128.aspx.cs Inherits=ListBoxs_X200906021128 % !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN ...
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="X200906021128.x.cs" Inherits="ListBoxs_X200906021128" %>  
<!DOCTYPE  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 : System.Web.UI.Page  
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
        if (!IsPostBack)  
        {  
            for (int i = 0; i < 20; i++)  
                fListBox.Items.Add(i.ToString());  
        }  
    }  
  
    protected void btnUp_Click(object sender, EventArgs e)  
    {  
        // 没有项,或第一个选中节点已经是第一项,则不处理  
        if (this.fListBox.Items.Count == 0 || this.fListBox.Items[0].Selected) return;   
        for (int i = 1; i < this.fListBox.Items.Count; i++)  
        {  
            if (this.fListBox.Items[i].Selected)  
                this.ChangeProperty(this.fListBox.Items[i - 1], this.fListBox.Items[i]);  
        }  
    }  
  
    protected void btnDown_Click(object sender, EventArgs e)  
    {  
        // 没有项,或最后一个选中节点已经是第一项,则不处理  
        if (this.fListBox.Items.Count == 0 || this.fListBox.Items[this.fListBox.Items.Count - 1].Selected) return;  
        for (int i = this.fListBox.Items.Count-1; i >-1 ; i--)  
        {  
            if (this.fListBox.Items[i].Selected)  
                this.ChangeProperty(this.fListBox.Items[i], this.fListBox.Items[i+1]);  
        }  
    }  
  
    private void ChangeProperty(ListItem fFront, ListItem fCurrent)  
    {  
        string fText = fFront.Text;  
        string fValue = fFront.Value;  
        bool fSelected = fFront.Selected;  
  
        fFront.Text = fCurrent.Text;  
        fFront.Value = fCurrent.Value;  
        fFront.Selected = fCurrent.Selected;  
  
        fCurrent.Text = fText;  
        fCurrent.Value = fValue;  
        fCurrent.Selected = fSelected;  
    }  
}  

 

 
Tag:
网友评论

<