ListBox组件是一个程序设计中经常使用到的组件在Visual C#和Visual Basic Net程序中使用这个组件必须要在程序中导入Net FrameWork SDK中名称空间SystemWindowsForms因为在SystemWindowsForms名称空间中定义了这个组件在ASPNET的Web页面中ListBox组件是作为一个服务器端组件的形式出现的所谓服务器端组件就是这些组件是在服务器端存在的本文就是来介绍ListBox组件在ASPNET的Web页面中的具体使用和操作方法 一. 如何在ASPNET页面中定义一个ListBox组件 在ASPNET页面中创建一个ListBox组件的语法如下 <asp:ListBox Id = MyListBox runat = server > <asp:ListItem Value = >第一个条目</asp:ListItem > <asp:ListItem Value = >第二个条目</asp:ListItem > 注释这里还可以加入类似上面的若干条目 </asp:ListBox > 在Web页面中执行上面的语句就可以产生一个名称为MyListBox包含若干条目的ListBox组件 二. ListBox组件中常用的属性 我们通过以下表格来说明ListBox组件的一些常用的属性 属性名称 属性代表的意义 SelectionMode 组件中条目的选择的类型即:多选单选SingleMultiple Rows 此组件显示总共多少行 Selected 检测条目十分被选中 SelectedItem 返回的类型是ListItem获得组件中被选择的条目 Count 组件中条目的总数 SelectedIndex 组件中被选择的条目的索引值 Items 泛指组件中所有的条目每一个条目的类型都是ListItem 三. 通过一个例子来掌握ListBox组件在ASPNET页面中的具体用法 在下面介绍ListBox组件在ASPNET中的使用方法的时候程序采用的程序设计语言是Visual C# ()如何在ListBox组件添加新的条目 通过以下语句就可以在名称为lstItem的ListBox组件中增加一个名称为Sample的条目 lstItem Items Add ( new ListItem ( Sample ) ) ()如何在ListBox组件中删除指定的条目 下列语句就是删除名称为lstItem的ListBox组件中的选定的一个条目 lstItem Items Remove ( lstItem SelectedItem ) ()如何在组件中移动指向条目的指针 移动条目的指针主要有四种方式至首条目至尾条目下一条上一条在程序设计中主要是通过操作组件的Count和SelectedIndex属性来实现以上四种方式的以下就是具体实现这四种方式的程序代码 //按钮至首条事件处理程序 if ( sender == First ) { if ( lstItem Items Count > ) { lstItem SelectedIndex = ; } } //按钮至尾条事件处理程序 if ( sender == Last ) { if ( lstItem Items Count > ) { lstItem SelectedIndex = lstItem Items Count ; } } //按钮上一条事件处理程序 if ( sender == Prev ) { if ( lstItem SelectedIndex > ) { lstItem SelectedIndex = lstItem SelectedIndex ; } } //按钮下一条事件处理程序 if ( sender == Next ) { if ( lstItem SelectedIndex < lstItem Items Count ) { lstItem SelectedIndex = lstItem SelectedIndex + ; } } ()如何实现组件中的指定条目的移位 移位包括二种其一是向上移位其二是向下移位程序中具体的实现思路是创建一个ListItem对象并把要移位指定的条目中的内容先暂放在此新建的这个对象中如果选定的是向上移位就把当前选定的条目的上一个条目的值赋值给当前选定的条目然后把刚才新建的对象的值再赋值给选定条目的上一个条目完成条目的向上移位操作对于向下移位可以仿效上面的做法但和上面做法的主要区别在于不是选定条目的上一个条目了而是选定条目的下一个条目下列语句就是就是实现这种思路的具体的程序代码 //按钮向上移位和向下移位事件处理程序 if ( ( sender == Up && lstItem SelectedIndex > ) || ( sender == Down && lstItem SelectedIndex < lstItem Items Count ) ) { int offset ; if ( sender == Up ) { offset = ; } else { offset = ; } ListItem lstTemp = new ListItem ( lstItem SelectedItem Text lstItem SelectedItem Value ) ; lstItem Items [ lstItemSelectedIndex ] Text = lstItem Items [ lstItem SelectedIndex + offset ] Text ; lstItem Items [ lstItem SelectedIndex ] Value = lstItem Items [ lstItem SelectedIndex + offset ] Value ; lstItem Items [ lstItem SelectedIndex + offset ] Text = lstTemp Text ; lstItem Items [ lstItem SelectedIndex + offset ] Value = lstTemp Value ; lstItem SelectedIndex = lstItem SelectedIndex + offset ; } 四. 本文中源程序代码(listboxaspx)和执行的界面 下图是执行了下列源程序代码(listboxaspx)后生成的界面 screenwidth)thisstylewidth=screenwidth; border=> listboxaspx源程序代码具体如下 <% @ Page Language = C# %> <html > <head > <script runat = server > protected void Button_Click ( object sender EventArgs e ) { //按钮增加条目事件处理程序 if ( sender == Add ) { if ( txtItemText != ) { lstItem Items Add ( new ListItem ( txtItem Text ) ) ; } } //按钮删除事件处理程序 if ( sender == Del ) { if ( lstItem SelectedIndex > ) { lstItem Items Remove ( lstItem SelectedItem ) ; } } //按钮向上移位和向下移位事件处理程序 if ( ( sender == Up && lstItem SelectedIndex > ) || ( sender == Down && lstItem SelectedIndex < lstItem Items Count ) ) { int offset ; if ( sender == Up ) { offset = ; } else { offset = ; } ListItem lstTemp = new ListItem ( lstItem SelectedItem Text lstItem SelectedItem Value ) ; lstItem Items [ lstItemSelectedIndex ] Text = lstItem Items [ lstItem SelectedIndex + offset ] Text ; lstItem Items [ lstItem SelectedIndex ] Value = lstItem Items [ lstItem SelectedIndex + offset ] Value ; lstItem Items [ lstItem SelectedIndex + offset ] Text = lstTemp Text ; lstItem Items [ lstItem SelectedIndex + offset ] Value = lstTemp Value ; lstItem SelectedIndex = lstItem SelectedIndex + offset ; } //按钮至首条事件处理程序 if ( sender == First ) { if ( lstItem Items Count > ) { lstItem SelectedIndex = ; } } //按钮至尾条事件处理程序 if ( sender == Last ) { if ( lstItem Items Count > ) { lstItem SelectedIndex = lstItem Items Count ; } } //按钮上一条事件处理程序 if ( sender == Prev ) { if ( lstItem SelectedIndex > ) { lstItem SelectedIndex = lstItem SelectedIndex ; } } //按钮下一条事件处理程序 if ( sender == Next ) { if ( lstItem SelectedIndex < lstItem Items Count ) { lstItem SelectedIndex = lstItem SelectedIndex + ; } } } </script > </head > <body > <form runat = server > <table > <tr > <td Colspan = > <h > <font color = red > WinForm组件ListBox演示程序 </font > </h > </td> </tr > <tr > <td > 请输入要增加的条目名称:</td > <td > <asp:TextBox id = txtItem TextMode = SingleLine runat = server/> <asp:Button id = Add Text = 增加条目 runat = server onclick = Button_Click/> </td > </tr > <tr > <td >ListBox: <br > <asp:ListBox id = lstItem Width = Height = runat = server > <asp:ListItem > 第一个条目 </asp:ListItem > </asp:ListBox > </td > <td > <asp:Button id = Del Text = 删除 runat = server onclick = Button_Click /> <asp:Button id = Up Text = 向上移位 runat = server onclick = Button_Click /> <asp:Button id = Down Text = 向下移位 runat = server onclick = Button_Click /> <asp:Button id = First Text = 至首条 runat = server onclick = Button_Click /> <asp:Button id=Prev Text = 上一条 runat = server onclick = Button_Click /> <asp:Button id = Next Text = 下一条 runat = server onclick = Button_Click /> <asp:Button id = Last Text = 至尾条 runat = server onclick = Button_Click /> </td > </tr > </table > </form > <body > </html > |