VS(C#)中怎么使用ListBox的多选功能,提取所选的value值集合

 我来答
百度网友51349fc56
2012-04-25 · TA获得超过191个赞
知道答主
回答量:80
采纳率:100%
帮助的人:132万
展开全部

在窗体上放置一个Button,和一个ListBox,并将ListBox1的属性SelectionMode设置为MultiExtended即可实现多选,想要将选择的值生成给SQL In查询使用的话,那么按下面的代码实现即可。

==========================================================================

        private void button1_Click(object sender, EventArgs e)

        {

            StringBuilder s = new StringBuilder();

            //构造SQL查询语句

            string sql = "select * from user_mst";

            foreach (string item in listBox1.SelectedItems)

            {

                //追加ListBox中所选择的值至容器s中

                s.AppendFormat("{0},", item);

            }

            //将字符串尾部的逗号字符去除

            if (s.Length > 0)

                s.Remove(s.Length - 1, 1);

            //where查询条件为ID字段In所选择的列表中

            sql = string.Format("select * from user_mst where id in ({0})", s.ToString());

            MessageBox.Show(sql );

        }

务白云0Fv
2012-04-25 · 超过11用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:40.7万
展开全部
设置其属性SelectionMode为Multiple 然后按住Ctrl 就可以多选了 提取的时候 要遍历所有选项 如果选中 就提取其值 就OK了 建议用JS做 比较简单点
追问
能说的具体点吗?
我原来是单选,只是想改成多选的
string s:
s = ListBox1.SelectedValue;
怎么把s改成value的集合,因为要用到后面的sql查询里去
追答
两种方式 因贴吧限制字数 就写在一块了:

1
2
3
4

// 如果用后台取值 这里可以去掉 也可去掉按钮中的OnClientClick="CC()"

下面是JS 代码:
$=function(id){
return document.getElementById(id);
}
function CC(){
var str="";
var strlist=$("ListBox1");
if(strlist.options.length>0){
for(var i=0;i 0)
//{
// foreach (ListItem item in ListBox1.Items)
// {
// if (item.Selected)
// StrValue += item + ",";
// }
// if (StrValue != "")
// {
// StrValue = StrValue.Substring(0, StrValue.Length - 1);
// }
//}
// 这里接到值之后 你可以传到sql 语句中使用了
}
限字 太厉害 只能这样了 呵呵 希望对你有帮助
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式