首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2013-09-09 
listbox多选实现上下移动 js版和服务器版%@ Page LanguageC# AutoEventWireuptrue CodeFileX2009

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 : 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;    }}

热点排行