.net中ListBox控件的使用,谢谢各位大侠啦

如下图,,当在第一个ListBox中选相关的值后,在第二个ListBox中自动添加进去并显示出来。当我在第一个ListBox选中第二个值之后,也在第二个ListBox中自... 如下图,,当在第一个ListBox中选相关的值后,在第二个ListBox中自动添加进去并显示出来。当我在第一个ListBox选中第二个值之后,也在第二个ListBox中自动添加进去并显示出来,但是在第二个ListBox中第一次选的值不会被清除,请问怎么清除第二个ListBox中前一次显示的值啊?谢谢~~!
"gxdangjia"这位仁兄,精神可嘉,其实第一楼简单明了地把我的问题给解决了,但是现在又出现一个新的问题,如果我把第一个ListBox中的selecttiondmode属性从single改为multiple,这个时候第一个ListBox就允许多选,但是如何把每次多选的值都传给第二个ListBox呢?谢谢~~!
展开
 我来答
ada2005y
2010-02-15
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
这个好办。上次没理解好你的意思。先用一数组来存放listbox1中被选中的项,然后再绑定到listbox2中。

using System.Collections;

//下面是程序实现部分

//先定义一个数组变量
ArrayList al=new ArrayList();

//把listbox1中选中的项存入数组变量al
for(int i=0;i<this.ListBox1.Items.count;i++)
{
if(this.ListBox1.Items[i].Selected){al.Add(this.ListBox1.Items[i].Text);}
}
//把al绑定到listbox2
this.ListBox2.DataSource=al;
this.ListBox2.DataBind();
qilinzd
2010-02-14 · TA获得超过541个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:333万
展开全部
你的意思是第二ListBox只能有一个值存在?每次都是替换而不是添加?
listBox2.Items.Clear();
listBox2.Items.Add(listBox1.SelectedItem);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
五千个字节
推荐于2016-03-09 · TA获得超过205个赞
知道小有建树答主
回答量:407
采纳率:0%
帮助的人:234万
展开全部

过年高兴失眠睡不着

看到了你的问题,想到了百度知道提交答案时的选择分类也是类似的这种情况

于是写了个c#代码 供你参考,用了半个多小时。自己也练练提高一下吧

百度用的什么技术不清楚

代码如下:

我用的是三层

数据库层:

 public static DataTable dt( string sqlstr)

    {

        SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["listboxConnectionString"].ConnectionString);

        SqlDataAdapter sqlada = new SqlDataAdapter(sqlstr,sqlcon);

        DataTable dt = new DataTable();

        try

        {

            sqlada.Fill(dt);

        }

        catch (Exception ex)

        {

            throw (ex);

        }

        finally

        {

            sqlada.Dispose();

            sqlcon.Close;

        }

        return dt;

    }

逻辑层代码

 public static void yiji(ListBox lb)

    { 

        DataTable dt=datahelp.dt("select distinct yiji from menu ");

        lb.DataSource=dt; 

        lb.DataTextField=dt.Columns["yiji"].ToString();

        lb.DataValueField=dt.Columns["yiji"].ToString();

        lb.DataBind();

    }

    public static void erji(string stvalue,ListBox lb)

    {

        DataTable dt = datahelp.dt("select min(id) as id, erji from menu where yiji='"+stvalue+"'group by erji order by id ");

        lb.DataSource = dt;

        lb.DataTextField = dt.Columns["erji"].ToString();

        lb.DataValueField = dt.Columns["erji"].ToString();

        lb.DataBind();

    }

    public static void sanji(string stvalue, ListBox lb)

    {

        DataTable dt = datahelp.dt("select  id, sanji from menu where erji='" + stvalue + "' order by id ");

        if (dt.Rows[0]["sanji"].ToString() !="")

        {

            lb.Visible = true;

            lb.DataSource = dt;

            lb.DataTextField = dt.Columns["sanji"].ToString();

            lb.DataValueField = dt.Columns["sanji"].ToString();

            lb.DataBind();

        }

        else

        { 

          lb.Visible = false; 

        }

    }

网页后台代码:

 protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            dealhelp.yiji(ListBox1);

            dealhelp.erji("电脑网络",ListBox2);

            ListBox3.Visible = false;

         }

             

      

    }

 protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)

    {

        ListBox3.Visible = false;

        string st = ListBox1.SelectedValue;

        dealhelp.erji(st,ListBox2);

    }

    protected void ListBox2_SelectedIndexChanged(object sender, EventArgs e)

    {

        string st = ListBox2.SelectedValue;

        dealhelp.sanji(st,ListBox3);

    }

网页里脱了三个listbox他们的id依次为listbox1,2,3.

数据库建表思想如图 你的问题加一个foreach循环就搞定了,再循环中判断选中项,选中就加,二楼的代码就可以实现。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式