ListBox与数据库的绑定操作

ListBox,DropDownList,checkBox这几个控件的属性跟使用方法几乎一样,在做系统的进修使用的频率也多。我这里主要与大家分享一下如何用listbox绑定数据据,及增加数据库,从列表中移除选择项的几个操作方法。其实用javascript也完全可以实现。我这里是用服务器端控件与数据库绑定操作来实现的。各有各的的优缺点。

ListBox与数据库的绑定操作_第1张图片




由上图可知:左边的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);
                            }


其它的操作就很简单了


这是在一个项目中一点小知识,与大家分享

你可能感兴趣的:(listbox)