<%@ PageLanguage="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>
<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml" >
<headrunat="server">
<title>ListBox控件选项的上移和下移操作</title>
</head>
<body>
<form id="form1"runat="server">
<div>
<table style="width: 195px;height: 136px">
<tr>
<tdcolspan="2">
ListBox控件的应用</td>
</tr>
<tr>
<td align="left"rowspan="4" style="width: 45px" valign="top">
<asp:ListBoxID="lbxSource" runat="server" Height="130px"SelectionMode="Multiple"
Width="116px"></asp:ListBox></td>
<td style="width:66px">
<asp:ButtonID="Button1" runat="server"OnClick="Button1_Click" Text="上移" Width="62px"/></td>
</tr>
<tr>
<td style="width: 66px;height: 27px">
<asp:ButtonID="Button2" runat="server"OnClick="Button2_Click" Text="下移" Width="62px"/></td>
</tr>
<tr>
<td style="width:66px">
<asp:ButtonID="Button3" runat="server"OnClick="Button3_Click" Text="循环上移" Width="62px"/></td>
</tr>
<tr>
<td style="width: 66px;height: 27px">
<asp:ButtonID="Button4" runat="server"OnClick="Button4_Click" Text="循环下移" Width="62px"/></td>
using System;
usingSystem.Data;
usingSystem.Configuration;
using System.Web;
using System.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
public partialclass _Default : System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
if (!IsPostBack)
{
lbxSource.Items.Add("星期日");
lbxSource.Items.Add("星期一");
lbxSource.Items.Add("星期二");
lbxSource.Items.Add("星期三");
lbxSource.Items.Add("星期四");
lbxSource.Items.Add("星期五");
lbxSource.Items.Add("星期六");
}
}
protected void Button1_Click(object sender,EventArgs e)
{
//若不是第一行则上移
if (lbxSource.SelectedIndex > 0&& lbxSource.SelectedIndex <= lbxSource.Items.Count - 1)
{
//记录当前选项的值
string name =lbxSource.SelectedItem.Text;
string value =lbxSource.SelectedItem.Value;
//获取当前选项的索引号
int index =lbxSource.SelectedIndex;
//交换当前选项和其前一项的索引号
lbxSource.SelectedItem.Text =lbxSource.Items[index - 1].Text;
lbxSource.SelectedItem.Value =lbxSource.Items[index - 1].Value;
lbxSource.Items[index - 1].Text =name;
lbxSource.Items[index - 1].Value =value;
//设定上一项为当前选项
lbxSource.SelectedIndex--;
}
}
protected void Button2_Click(object sender,EventArgs e)
{
//若不是最后一行则下移
if (lbxSource.SelectedIndex >= 0&& lbxSource.SelectedIndex < lbxSource.Items.Count - 1)
{
//保存当前选项的信息
string name =lbxSource.SelectedItem.Text;
string value =lbxSource.SelectedItem.Value;
//获取当前选项的索引号
int index =lbxSource.SelectedIndex;
//交换当前选项与下一项的信息
lbxSource.SelectedItem.Text =lbxSource.Items[index + 1].Text;
lbxSource.SelectedItem.Value =lbxSource.Items[index + 1].Value;
lbxSource.Items[index + 1].Text =name;
lbxSource.Items[index + 1].Value =value;
//设定下一项为当前选项
lbxSource.SelectedIndex++;
}
}
//循环上移
protected void Button3_Click(object sender,EventArgs e)
{
//若不是第一行则上移
if (lbxSource.SelectedIndex > 0&& lbxSource.SelectedIndex <= lbxSource.Items.Count - 1)
{
string name =lbxSource.SelectedItem.Text;
string value =lbxSource.SelectedItem.Value;
//获取当前选项的索引号
int index =lbxSource.SelectedIndex;
//交换当前选项的索引号
lbxSource.SelectedItem.Text =lbxSource.Items[index - 1].Text;
lbxSource.SelectedItem.Value =lbxSource.Items[index - 1].Value;
lbxSource.Items[index - 1].Text =name;
lbxSource.Items[index - 1].Value =value;
//设定上一项为当前选项
lbxSource.SelectedIndex--;
}
//若是第一行被选择,则循环移到最后一行
else if (lbxSource.SelectedIndex == 0)
{
ListItem Item = lbxSource.Items[0];
lbxSource.Items.Remove(Item);
lbxSource.Items.Add(Item);
}
}
//循环下移
protected void Button4_Click(object sender,EventArgs e)
{
//若不是最后一行则下移
if (lbxSource.SelectedIndex >= 0&& lbxSource.SelectedIndex < lbxSource.Items.Count - 1)
{
//保存当前选项的信息
string name =lbxSource.SelectedItem.Text;
string value =lbxSource.SelectedItem.Value;
//获取当前选项的索引号
int index =lbxSource.SelectedIndex;
//交换当前选项与下一项的信息
lbxSource.SelectedItem.Text =lbxSource.Items[index + 1].Text;
lbxSource.SelectedItem.Value =lbxSource.Items[index + 1].Value;
lbxSource.Items[index + 1].Text =name;
lbxSource.Items[index + 1].Value =value;
//设定下一项为当前选项
lbxSource.SelectedIndex++;
}
else if (lbxSource.SelectedIndex ==(lbxSource.Items.Count - 1))
{
ListItem Item =lbxSource.Items[(lbxSource.Items.Count - 1)];
lbxSource.Items.Remove(Item);
lbxSource.Items.Insert(0, Item);
}
}
}