ListBox,DropDownList,checkBox这几个控件的属性跟使用方法几乎一样,在做系统的进修使用的频率也多。我这里主要与大家分享一下如何用listbox绑定数据据,及增加数据库,从列表中移除选择项的几个操作方法。其实用javascript也完全可以实现。我这里是用服务器端控件与数据库绑定操作来实现的。各有各的的优缺点。
由上图可知:左边的ListBox我是通过DropDownList的选择来进行绑定数据的。所以ListBox是跟上面的部门DropDownList绑定的,所以我应该在DropdownList的selectedx_changed事件中写绑定ListBox的代码
程序代码
int departmentID = Convert.ToInt32(ddlDepartment.SelectedValue); //获取Dropdownlist中的选择项的值并转成整型
BLL.Sys.Member bllMember = new ABC.BLL.Sys.Member(); //初始化一个BLL业务操作层的对象
if (bllMember.CountByDepartment(departmentID) != 0) //如果绑定的数据总数不为0的情况下
{
lstDeptMember.DataSource = bllMember.ListByDepartment(departmentID, 1, bllMember.CountByDepartment(departmentID)); //业务层绑定方法,也就是listBox的数据来源
lstDeptMember.DataValueField = "MemberID"; //绑定ListBox单项的选择值
lstDeptMember.DataTextField = "TrueName";//绑定ListBox单项的文字值
lstDeptMember.DataBind();
}
else
{
lstDeptMember.Items.Clear(); //清除ListBox的所有项目
ListItem item = new ListItem();
item.Text = "暂时无用户";
item.Value = string.Empty;
lstDeptMember.Items.Add(item);
}
加入所选用户
加入所选用户的Button是对右边所选择的值进行一个简单的for循环检测,选中的加到右边的ListBox中
程序代码
if (lstDeptMember.SelectedIndex != -1) //lstDeptMember.SelectedIndex!=-1判定是否未选择
{
if (lstDeptMember.SelectedItem.Text != "暂时无用户")
{
for (int i = 0; i <= lstDeptMember.Items.Count - 1; i++)
{
if (lstDeptMember.Items[i].Selected)
{
ListItem item = new ListItem();
item.Value = lstDeptMember.Items[i].Value;
item.Text = lstDeptMember.Items[i].Text;
if (lstRoleMember.Items.Contains(item) == false) //判断是否有重复项
{
lstRoleMember.Items.Add(item);
}
}
}
全部加入角色
这个就更简单的,只要保证左边有数值就可以了
程序代码
if (lstDeptMember.SelectedIndex != -1) //判定是否未选择
{
if (lstDeptMember.SelectedItem.Text != "暂时无用户")
{
for (int i = 0; i <= lstDeptMember.Items.Count - 1; i++)
{
ListItem item = new ListItem();
item.Value = lstDeptMember.Items[i].Value;
item.Text = lstDeptMember.Items[i].Text;
if (lstRoleMember.Items.Contains(item) == false)
{
lstRoleMember.Items.Add(item);
}
}
Distinct(lstRoleMember.Items);
}
}
else
{
Common.JS.Alert("没有选择项,年轻人,不要乱搞好不好,乱搞会出事的.");
}
移除的话就只是一个数据操作的方法罢了
if (lstRoleMember.SelectedIndex != -1) //lstDeptMember.SelectedIndex!=-1判定是否未选择
{
for (int i = 1; i <= lstRoleMember.Items.Count - 1; i++)
{
if (lstRoleMember.Items[i].Selected)
{
lstRoleMember.Items.Remove(lstRoleMember.Items[i]);
}
}
}
else
{
Common.JS.Alert("没有选择项.");
}
移除全部用户
if (lstRoleMember.Items.Count > 0)
{
lstRoleMember.Items.Clear();
}
这里有几个小Tips:
1.设置ListBox的多选:将SelectionMode设置为True
2.判断ListBox中是否存在已经所选的项:
if (lstRoleMember.Items.Contains(item) == false) //判断是否有重复项
{
lstRoleMember.Items.Add(item);
}
其它的操作就很简单了
这是在一个项目中一点小知识,与大家分享