注册 登录
编程论坛 ASP.NET技术论坛

把源列表框里的选项全部移到目的列表框里的算法

fyz520 发布于 2010-04-03 19:39, 798 次点击
以下是把源列表框里的选项全部移到目的列表框里的算法

protected void Button1_Click(object sender, EventArgs e)
    {
        int count = lbxSource.Items.Count;
        int index=0;
        for(int i=0;i<count;i++){
            ListItem ltem=lbxSource.Items[index];
            lbxSource.Items.Remove(ltem);
            lbxDest.Items.Add(ltem);
            
        }
        index++;
     }
小弟有点不明白,为什么把index++放在循环以外,放在for循环外面那当我们点击按钮的时候index++不是只执行一次吗?如果是这样的话为什么能把所有的选项移到目的列表框里呢?
 ListItem ltem=lbxSource.Items[index];还有这一句具体是什么意思哦,刚学, 不太懂?lbxSource.Items[index]这个获取的是不是第几个选项的意思呢,比如index=1,那么ltem是不是也等于1啊?


望各位高手指点,谢谢了!
7 回复
#2
saitor2010-04-04 10:42
这谁写代码?index++;这里完全没有意义。每次点击index都是0,ListItem ltem=lbxSource.Items[index];得到个ListItem ,lindex这个你理解正确。ltem不是等于1是等于ITEMS里的第index下标里的元素
#3
fyz5202010-04-04 20:47
谢谢哦,可是我把程序改了之后是错的,比如
protected void Button1_Click(object sender, EventArgs e)
    {
        int count = lbxSource.Items.Count;
        for(int i=0;i<count;i++){
            ListItem ltem=lbxSource.Items[i];
            lbxSource.Items.Remove(ltem);
            lbxDest.Items.Add(ltem);
            
        }
     }
#4
saitor2010-04-04 21:27
lbxSource.Items.Remove(ltem); lbxSource集合数变小,你再循环最初的lbxSource个数次,以第几次数当下标,当然会报空指针异常
#5
saitor2010-04-04 21:27
错了是索引超出异常
#6
fyz5202010-04-04 21:57
以下是引用fyz520在2010-4-4 20:47:51的发言:

谢谢哦,可是我把程序改了之后是错的,比如
protected void Button1_Click(object sender, EventArgs e)
    {
        int count = lbxSource.Items.Count;
        for(int i=0;i


ListItem到底怎么是什么类型哦?lbxsour.items[index]获取的是列表的标题吗?
lbxSource.Items.Remove(ltem);能改成lbxSource.Items.Remove(索引号);吗?还是一定要ListItem类型的变量作参数,谢了
#7
saitor2010-04-04 22:03
lbxSource.Items.Remove(ltem);这段去掉,或者你另用个循环去移除lbxSource.Items.Remove(ltem);用么你这么写;
int count = lbxSource.Items.Count;
       while(count>0){
            ListItem ltem=lbxSource.Items[count-1];
            
            lbxSource.Items.Remove(ltem);
            lbxDest.Items.Add(ltem);
            count=lbxSource.Items.Count;
       }
#8
fyz5202010-04-04 22:22
谢谢

string text=DropDownList1.selecteditem;//这个可以获取选项的标题吗?书上说可以哦,可是我试了一下出错

错误提示是:

无法将类型“System.Web.UI.WebControls.ListItem”隐式转换为“string”可以加你QQ吗
1