listbox的一些使用技巧
一、数据绑定
listbox的数据绑定和 dropdownlist 的一样,都要用到dataset。最后应该是:
lbox_RWDBH.DataSource = myDs.Tables["table0"].DefaultView;
lbox_RWDBH.DataTextField = "RWDBH";
lbox_RWDBH.DataValueField = "RWDBH";
lbox_RWDBH.DataBind();
lbox_RWDBH.DataTextField = "RWDBH";
lbox_RWDBH.DataValueField = "RWDBH";
lbox_RWDBH.DataBind();
二、两个listbox的联动(点击一边的条目,该条目移向另一边)
为动作为单击事件,首先要设置listbox控件的自动响应(AutoPostBack="true")
代码
 1     /// <summary>
2 /// 向右边的一个listbox添加
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 protected void itemAdd(object sender,EventArgs e)
7 {
8 // 对样品单的数量加以限制
9 if (lbox_RWD_Sel.Items.Count < 10)
10 {
11 ListItem lItem = new ListItem();
12 lItem = lbox_RWDBH.SelectedItem;
13 lItem.Selected = false; // 取消对该条目的选定
14
15 lbox_RWD_Sel.Items.Add(lItem);
16 lbox_RWDBH.Items.Remove(lItem);
17
18 // 排序
19 ListBoxSort(lbox_RWD_Sel);
20 }
21 else
22 {
23 ClientScript.RegisterStartupScript(GetType(),"msg","<script>alert('您最多只能选择10个样品单!');</script>");
24 }
25 }
26
27 /// <summary>
28 /// 删掉一项
29 /// </summary>
30 /// <param name="sender"></param>
31 /// <param name="e"></param>
32 protected void itemDel(object sender,EventArgs e)
33 {
34 ListItem listem = new ListItem();
35 listem = lbox_RWD_Sel.SelectedItem;
36 listem.Selected = false;
37
38 lbox_RWDBH.Items.Add(listem);
39 lbox_RWD_Sel.Items.Remove(listem);
40
41 // 排序
42 ListBoxSort(lbox_RWDBH);
43 }
2 /// 向右边的一个listbox添加
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 protected void itemAdd(object sender,EventArgs e)
7 {
8 // 对样品单的数量加以限制
9 if (lbox_RWD_Sel.Items.Count < 10)
10 {
11 ListItem lItem = new ListItem();
12 lItem = lbox_RWDBH.SelectedItem;
13 lItem.Selected = false; // 取消对该条目的选定
14
15 lbox_RWD_Sel.Items.Add(lItem);
16 lbox_RWDBH.Items.Remove(lItem);
17
18 // 排序
19 ListBoxSort(lbox_RWD_Sel);
20 }
21 else
22 {
23 ClientScript.RegisterStartupScript(GetType(),"msg","<script>alert('您最多只能选择10个样品单!');</script>");
24 }
25 }
26
27 /// <summary>
28 /// 删掉一项
29 /// </summary>
30 /// <param name="sender"></param>
31 /// <param name="e"></param>
32 protected void itemDel(object sender,EventArgs e)
33 {
34 ListItem listem = new ListItem();
35 listem = lbox_RWD_Sel.SelectedItem;
36 listem.Selected = false;
37
38 lbox_RWDBH.Items.Add(listem);
39 lbox_RWD_Sel.Items.Remove(listem);
40
41 // 排序
42 ListBoxSort(lbox_RWDBH);
43 }
三、对listbox 中的条目进行排序
listbox的条目、经过添加、删除之后,新增加的项目,默认是加到最后。所以,我们需要对listbox 中的条目进行重新排序:
代码
 1     /// <summary>
2 /// 为listbox中的项进行排序
3 /// </summary>
4 /// <param name="lbox"></param>
5 protected void ListBoxSort(ListBox lbox)
6 {
7 SortedList sList = new SortedList();
8 for (int i = 0; lbox.Items.Count > i;i++ )
9 {
10 sList.Add(lbox.Items[i].Text,lbox.Items[i].Value); //将listbox内容逐项复制到sortedlist对象中
11 }
12
13 lbox.Items.Clear(); // 清空原listbox
14
15 foreach(DictionaryEntry obj in sList)
16 {
17 ListItem myit = new ListItem();
18 myit.Text = obj.Key.ToString();
19 myit.Value = obj.Value.ToString();
20 lbox.Items.Add(myit);
21 }
22 }
2 /// 为listbox中的项进行排序
3 /// </summary>
4 /// <param name="lbox"></param>
5 protected void ListBoxSort(ListBox lbox)
6 {
7 SortedList sList = new SortedList();
8 for (int i = 0; lbox.Items.Count > i;i++ )
9 {
10 sList.Add(lbox.Items[i].Text,lbox.Items[i].Value); //将listbox内容逐项复制到sortedlist对象中
11 }
12
13 lbox.Items.Clear(); // 清空原listbox
14
15 foreach(DictionaryEntry obj in sList)
16 {
17 ListItem myit = new ListItem();
18 myit.Text = obj.Key.ToString();
19 myit.Value = obj.Value.ToString();
20 lbox.Items.Add(myit);
21 }
22 }
                    
                
                
            
        
浙公网安备 33010602011771号