2008年03月13日 17:22:30
listbox一些操作
|
1. 属性列表: SelectionMode 组件中条目的选择类型,即多选(Multiple)、单选(Single) Rows 列表框中显示总共多少行 Selected 检测条目是否被选中 SelectedItem 返回的类型是ListItem,获得列表框中被选择的条目 Count 列表框中条目的总数 SelectedIndex 列表框中被选择项的索引值 Items 泛指列表框中的所有项,每一项的类型都是ListItem 2. 取列表框中被选中的值 ListBox.SelectedValue 3. 动态的添加列表框中的项: ListBox.Items.Add("所要添加的项"); 4. 移出指定项: //首先判断列表框中的项是否大于0 If(ListBox.Items.Count > 0 ) { //移出选择的项 ListBox.Items.Remove(ListBox.SelectedItem); } 5. 清空所有项: //首先判断列表框中的项是否大于0 If(ListBox.Items.Count > 0 ) { //清空所有项 ListBox.Items.Clear(); } 6. 列表框可以一次选择多项: 只需设置列表框的属性 SelectionMode="Multiple",按Ctrl可以多选 7. 两个列表框联动,即两级联动菜单 //判断第一个列表框中被选中的值 switch(ListBox1.SelectValue) { //如果是"A",第二个列表框中就添加这些: case "A" ListBox2.Items.Clear(); ListBox2.Items.Add("A1"); ListBox2.Items.Add("A2"); ListBox2.Items.Add("A3"); //如果是"B",第二个列表框中就添加这些: case "B" ListBox2.Items.Clear(); ListBox2.Items.Add("B1"); ListBox2.Items.Add("B2"); ListBox2.Items.Add("B3"); } 8. 实现列表框中项的移位 即:向上移位、向下移位 具体的思路为:创建一个ListBox对象,并把要移位的项先暂放在这个对象中。 如果是向上移位,就是把当前选定项的的上一项的值赋给当前选定的项,然后 把刚才新加入的对象的值,再附给当前选定项的前一项。 具体代码为: //定义一个变量,作移位用 index = -1; //将当前条目的文本以及值都保存到一个临时变量里面 ListItem lt=new ListItem (ListBox.SelectedItem.Text,ListBox.SelectedValue); //被选中的项的值等于上一条或下一条的值 ListBox.Items[ListBox.SelectedIndex].Text=ListBox.Items[ListBox.SelectedIndex + index].Text; //被选中的项的值等于上一条或下一条的值 ListBox.Items[ListBox.SelectedIndex].Value=ListBox.Items[ListBox.SelectedIndex + index].Value; //把被选中项的前一条或下一条的值用临时变量中的取代 ListBox.Items[ListBox.SelectedIndex].Test=lt.Test; //把被选中项的前一条或下一条的值用临时变量中的取代 ListBox.Items[ListBox.SelectedIndex].Value=lt.Value; //把鼠标指针放到移动后的那项上 ListBox.Items[ListBox.SelectedIndex].Value=lt.Value; 9. 移动指针到指定位置: (1).移至首条 this.ListBox1.Items.Insertat(3,new ListItem("插入在第3行之后项","")); //将被选中项的索引设置为0就OK了 ListBox.SelectIndex=0; (2).移至尾条 //将被选中项的索引设置为ListBox.Items.Count-1就OK了 ListBox.SelectIndex=ListBox.Items.Count-1; (3).上一条 //用当前被选中的索引去减 1 ListBox.SelectIndex=ListBox.SelectIndex - 1; (4).下一条 //用当前被选中的索引去加 1 ListBox.SelectIndex=ListBox.SelectIndex + 1; this.ListBox1.Items.Insertat(index,ListItem) ListBox1.Items.Insert(0,new ListItem("text","value")); ASP.NET中添加控件ListBox , 属性设为 Multiple , 则可进行多选. 就以两个listbox之间多选添加项目为例. 两个控件为listboxleft , listboxright 定义了一个动态数组用于中间存储 arrRight .具体代码如下: //读取右边选中项目 ArrayList arrRight = new ArrayList(); foreach(ListItem item in this.ListBoxRight.Items) //按类型listitem读取listbox中选定项 { if(item.Selected) //判断是否选中 { arrRight.Add(item); } } //右边移除选定项目 左边添加 foreach(ListItem item in arrRight) { this.ListBoxLeft.Items.Add(item); this.ListBoxRight.Items.Remove(item); } 不能将item的添加删除直接写在if(item.Selected){}内,因为项目remove后会出现错误 Move the Item of ListBox .aspx -------------------------------- <asp:ListBox id="ListBox1" style="Z-INDEX: 105; LEFT: 96px; POSITION: absolute; TOP: 344px" runat="server"> <asp:ListItem Value="a1">a1</asp:ListItem> <asp:ListItem Value="a2">a2</asp:ListItem> <asp:ListItem Value="a3">a3</asp:ListItem> </asp:ListBox> ---------------------------------- .cs //for 个 private void Button1_Click(object sender, System.EventArgs e){ if (this.ListBox1.SelectedIndex>=0) { int i = ListBox1.SelectedIndex; if(i>0) { string values = this.ListBox1.Items.Text ; this.ListBox1.Items.Text = this.ListBox1.Items[i-1].Text ; this.ListBox1.Items[i-1].Text = values; } } } ASP.NET中ListBox实现Double Click事件 2007-06-24 13:18
<asp:ListItem Value="value" Selected=True>Text</asp:ListItem> 若在服务器端实现,为避免每次加载时执行添加列表项,上述代码包含在下面代码中: if(!IsPostBack) { } WebForm页面上须添加2个listbox(listbox1和lixtbox2)和2个命令按钮,listbox1不为空。列表项从listbox1添加到listbox2须在Button1单击事件中调用Add方法: ListBox2.Items.Add(ListBox1.SelectedValue); 若要从listbox2中删除列表项的话须在Button2单击事件中调用Remove方法: ListBox2.Items.Remove(ListBox2.SelectedValue); 列表项从listbox1添加到listbox2后,列表项从listbox1中删除: int i=0; while(i<ListBox1.Items.Count) { if(ListBox1.Items.Selected==true) { ListBox2.Items.Add(ListBox1.Items); ListBox1.Items.Remove(ListBox1.Items); } else i+=1; } 这样只能实现单项添加,想要实现多项添加,首先设置ListBox1的SelectionMode属性值Multiple,ListBox1允许多项选中。 在Button1单击事件中添加 foreach(ListItem MyItem in ListBox1.Items) if(MyItem.Selected==true) ListBox2.Items.Add(MyItem); 想要一次清空ListBox2中所有选项可在Button2单击事件中调用clear方法, ListBox2.Items.Clear(); 若列表项已经添加,不允许二次添加,Button1单击事件中的代码包含在: if(ListBox2.Items.FindByValue(ListBox1.SelectedValue)==null) { } ListBox与数据库绑定就是指定他的DataSource和DataTextField属性, ListBox2.DataSource=数据源; ListBox2.DataTextField="字段名"; ListBox2.DataBind(); 如果是在后台做的话 AutoPostBack =true 然后给第一个listbox加事件(SelectedIndexChanged) 然后一个遍历就可以出来了 CODE: private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e){ for(int i=0;i<ListBox1.Items.Count;i++){ ListBox2.Items.Selected=ListBox1.Items.Selected; } } 如果是前台js的话,这里讨论过很多,找找看,思路是一样的。 Tags:
listbox
|
一共有 0 条评论