<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ListBoxDemo.aspx.cs" Inherits="VideoDemo.Web.ListBox" %>
<!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 src="../JS/jquery-1.7.js" type="text/javascript"></script>
<script type="text/javascript">
//移动用户选择的角色
//setname:要移出数据的列表名称 getname:要移入数据的列表名称
function move(setname, getname) {
var size = $("#" + setname + " option").size();//某个listbox下的所有选项
var selsize = $("#" + setname + " option:selected").size();//某个listbox下被选中的项
if (size > 0 && selsize > 0) {//Listbox下有选项 同时有被选中的项
$.each($("#" + setname + " option:selected"), function(id, own) {
var text = $(own).text();
var tag = $(own).attr("tag");
var value = $(own).attr("value");
$("#" + getname).prepend("<option tag=\"" + tag + "\" value=\""+value+"\" >" + text + "</option>");
$(own).remove();//左边框里的移除去
$("#" + setname + "").children("option:first").attr("selected", true);//默认选中第一个
});
}
//重新排序
$.each($("#" + getname + " option"), function(id, own) {
orderrole(getname);
});
}
//按首字母排序角色列表
function orderrole(listname) {
var size = $("#" + listname + " option").size();
var one = $("#" + listname + " option:first-child");
if (size > 0) {
var text = $(one).text();
var tag = parseInt($(one).attr("tag"));
//循环列表中第一项值下所有元素
$.each($(one).nextAll(), function(id, own) {
var nextag = parseInt($(own).attr("tag"));
if (tag > nextag) {
$(one).remove();
$(own).after("<option tag=\"" + tag + "\" value=\""+text+"\"></option>");
one = $(own).next();
}
});
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table border="0">
<tr>
<td width="156">
全部水果:
</td>
<td width="142">
</td>
<td width="482">
我挑选的:
</td>
</tr>
<tr>
<td rowspan="2">
<asp:ListBox SelectionMode="Multiple" ID="listall" Rows="12" Width="156" runat="server">
</asp:ListBox>
</td>
<td height="41" align="center">
<input type="button" value=">>>" οnclick="move('listall','listmy');" /><br />
<br />
<input type="button" value="<<<" οnclick="move('listmy','listall');" />
</td>
<td rowspan="2">
<asp:ListBox SelectionMode="Multiple" ID="listmy" Rows="12" Width="156" runat="server" >
</asp:ListBox>
</td>
</tr>
<tr><td><asp:Button ID="btnOK" runat="server" Text="测试" οnclick="btnOK_Click" /></td></tr>
</table>
</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;
using System.Collections;
using Common;
namespace VideoDemo.Web
{
public partial class ListBox : System.Web.UI.Page
{
JSMessage js = new JSMessage();
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
BindData();
}
}
private void BindData()
{
ArrayList list = DataArray();
for (int i = 0; i < list.Count; i++)
{
listall.Items.Add(list[i].ToString());
listall.Items[i].Attributes["tag"] = i.ToString(); //用tag记录排序字段
}
}
private ArrayList DataArray()
{
//用到的一些数据,这里已默认按第一个字的拼音排序
ArrayList list = new ArrayList();
list.Add("权限");
list.Add("修改权限");
list.Add("添加权限");
list.Add("删除权限");
list.Add("学生列表");
list.Add("修改学生列表");
list.Add("添加学生列表");
list.Add("删除学生列表");
return list;
}
protected void btnOK_Click(object sender, EventArgs e)
{
string opt = "";
int countii = listall.Items.Count;
int count = listmy.Items.Count;
for (int i = 0; i < listmy.Items.Count;i++ )
{
opt = listmy.Items[i].Value+"|||||||||||||||||||||";
}
js.AjaxAlert(opt,this.Page);
}
}
}