您的位置:首页 > 其它

listbox控件的一些操作

2009-10-12 16:52 369 查看
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).
移至首条

//
将被选中项的索引设置为
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;

出自

51CTO.COM
博客

this.ListBox1.Items.Insertat(3,new ListItem("
插入在第
3
行之后项
",""));

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[i].Text ;

this.ListBox1.Items[i].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.NET
中的ListBox
控件的使用中很多人都发现没有了WINFORM
中ListBox
的鼠标双击事件

这样就给我们开发带来很多不方便的地方

也看了很多CSDN
上用JS
来实现双击事件的方法,
都是不完整的,
最后发现以下方法是最有效的

首先在WEB
页面上加入JS
脚本和存放ListBox
事件的隐藏输入框

再将ASP.NET
控件ListBox
中加入双击事件声明

<html>
<head>
<mce:script language="javascript"><!--
function ListBox1_DoubleClick() {
/* we will change value of this hidden field so
that in
page load event we can identify event.
*/
document.forms[0].ListBox1Hidden.value = "doubleclicked";
document.forms[0].submit();
}
// --></mce:script>
</head>
<body>
<form runat="server">
<div>Double click on Listbox
<br />
<asp:ListBox id="ListBox1"
ondblclick="ListBox1_DoubleClick()" runat="server">
<asp:ListItem Value="1">One</asp:ListItem>
<asp:ListItem Value="2">Two</asp:ListItem>
<asp:ListItem Value="3">Three</asp:ListItem>
<asp:ListItem Value="4">Four</asp:ListItem>
</asp:ListBox>
<input type="hidden" name="ListBox1Hidden" />
</div>
<div>click on button
<br />
<asp:Button id="Button1" onclick="Button1_Click"
runat="server" Text="Button"/>
</div>
</form>
</body>
</html>


最后在
WEB
窗体加载时候执行下列代码就能实现双击
ListBox

Item
执行一些操作

void Page_Load(Object sender, EventArgs e){
if(Request.Params["ListBox1Hidden"] != null
&& (string)Request.Params["ListBox1Hidden"] == "doubleclicked" {
//This means It was double click
Response.Write("Double Click was fired selected item is "
+ ListBox1.SelectedItem.Text);

//可以在这里加要运行的代码
}
}


希望这篇文章能对大家有帮助,
不要再受CSDN
上帖子的误导了

ListBox
基本功能首先是列表项的添加
,
客户端实现代码添加在
listbox
实例化代码中间
,
例如:

<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[i].Selected==true)

{

ListBox2.Items.Add(ListBox1.Items[i]);

ListBox1.Items.Remove(ListBox1.Items[i]);

}

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


然后一个遍历就可以出来了

[Copy to clipboard]
[ - ]



CODE:


private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e)

{

for(int i=0;i<ListBox1.Items.Count;i++){

ListBox2.Items[i].Selected=ListBox1.Items[i].Selected;

}

}

如果是前台
js
的话,这里讨论过很多,找找看,思路是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: