核心提示:%@ Page Language=C# AutoEventWireup=true CodeFile=X200906021128.aspx.cs Inherits=ListBoxs_X200906021...
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="X200906021128.aspx.cs" Inherits="ListBoxs_X200906021128" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://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"> <p> <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 鼠标,实现多选或间断多选 </p> </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;
}
}


