asp.net listbox实现单选全选取消

640 查看

前台
复制代码 代码如下:

<head runat="server">
<title>部门多选</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<SCRIPT language="javascript" type="text/javascript">
function Ok()
{
window.close();
opener.document.all.txtOtherMan.value = window.Form2.hide.value;
}
function Cancel()
{
window.close();
}
</SCRIPT>
</head>
<body>
<form id="Form2" method="post" runat="server">
<TABLE style="WIDTH: 600px; POSITION: absolute; HEIGHT: 320px" cellSpacing="0" cellPadding="0" border="0">
<TR>
<TD style="WIDTH: 600px; HEIGHT: 20px">
<INPUT id="hide" type="hidden" value="<%=pass()%>">
<BUTTON id="ok" onclick="javascript:Ok();" type="button">确定</BUTTON>
<BUTTON id="cancel" onclick="javascript:Cancel();" type="button">取消</BUTTON>
<%-- <asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" />--%>
</TD>
</TR>
<TR>
<TD style="WIDTH: 600px; height: 310px;" vAlign="top" align="left">
<DIV class="box" style="WIDTH: 600px ;HEIGHT: 300px; left: 0px; top: 0px;">

<asp:listbox id="UserList" style="Z-INDEX: 105; LEFT: 27px; POSITION: absolute; TOP: 56px" runat="server" Height="201px" Width="200px" SelectionMode="Multiple" DataTextField="Name" DataValueField="Name"></asp:listbox>
<asp:listbox id="lstSelEmp" style="Z-INDEX: 106; LEFT: 317px; POSITION: absolute; TOP: 58px" runat="server" Height="202px" Width="211px"></asp:listbox>
<asp:label id="Label4" style="Z-INDEX: 107; LEFT: 30px; POSITION: absolute; TOP: 32px" runat="server" CssClass="tttable">选取部门:</asp:label>
<asp:label id="Label5" style="Z-INDEX: 108; LEFT: 316px; POSITION: absolute; TOP: 34px" runat="server" CssClass="tttable" Height="18px" Width="108px">已选定部门:</asp:label>
<asp:button id="cmdAdd" style="Z-INDEX: 109; LEFT: 235px; POSITION: absolute; TOP: 145px" runat="server" CssClass="bsbttn" Height="27px" Width="63px" Text="添加->" onclick="cmdAdd_Click"></asp:button>
<asp:button id="cmdDel" style="Z-INDEX: 110; LEFT: 237px; POSITION: absolute; TOP: 184px" runat="server" CssClass="bsbttn" Height="30px" Width="60px" Text="<-删除" onclick="cmdDel_Click"></asp:button>
<asp:button id="cmdAddAll" style="Z-INDEX: 111; LEFT: 238px; POSITION: absolute; TOP: 64px" runat="server" CssClass="bsbttn" Height="30px" Width="60px" Text="全选" onclick="cmdAddAll_Click"></asp:button>
<asp:button id="cmdDelAll" style="Z-INDEX: 112; LEFT: 236px; POSITION: absolute; TOP: 104px" runat="server" CssClass="bsbttn" Height="30px" Width="60px" Text="全不选" onclick="cmdDelAll_Click"></asp:button>
</DIV>
</TD>
</TR>
</TABLE>
</form>

</body>

后台
复制代码 代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BLL;
using Model;
public partial class Boarding_HarmSelRoleEmp : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{

if (BLL.EmailUser.GetEmailUserByID(Session["username"].ToString()).userCompany.ToString() == "北京")//登录判断

{

//左侧listbox绑定部门
this.UserList.Items.Clear();
this.UserList.Items.Add(new ListItem("总董事长办公室", "总董事长办公室"));
this.UserList.Items.Add(new ListItem("财务", "财务"));
this.UserList.Items.Add(new ListItem("市场", "市场"));
this.UserList.Items.Add(new ListItem("行政", "行政"));
this.UserList.Items.Add(new ListItem("IT", "IT"));
}

}
}
protected void cmdAdd_Click(object sender, System.EventArgs e)//添加到右侧
{
bool exist=false;//判断在右侧是否存在,不存在则将左侧部门添加到右侧
foreach( ListItem li in lstSelEmp.Items)
{
if(li.Value==UserList.SelectedItem.Value)
{
exist=true;
}
}
if(exist==false)
{
lstSelEmp.Items.Add(new ListItem(UserList.SelectedItem.Text,UserList.SelectedItem.Value));
}
}
protected void cmdDel_Click(object sender, System.EventArgs e)//取消右侧选择
{
lstSelEmp.Items.Remove(lstSelEmp.SelectedItem);
}
protected void cmdDelAll_Click(object sender, System.EventArgs e)//全部取消右侧选择
{
for(int i=0;i<lstSelEmp.Items.Count; )
lstSelEmp.Items.Remove(lstSelEmp.Items[i]);
}
protected void cmdAddAll_Click(object sender, System.EventArgs e)//全部添加到右侧
{
foreach(ListItem li in UserList.Items)
{
bool exist=false;
foreach( ListItem lised in lstSelEmp.Items)
if(lised.Value==li.Value)
exist=true;
if(exist==false)
lstSelEmp.Items.Add(new ListItem(li.Text,li.Value));
}
}
public string pass()
{
string txt="";
for(int j=0;j < lstSelEmp.Items.Count;j++)
{
txt+=lstSelEmp.Items[j];
txt+="','";
}
return txt;
}
}