永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-11-27 01:56
VS(C#)中怎么使用ListBox的多选功能,提取所选的value值集合
最佳答案
在窗体上放置一个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 );
        }

全部回答
设置其属性SelectionMode为Multiple 然后按住Ctrl 就可以多选了 提取的时候 要遍历所有选项 如果选中 就提取其值 就OK了 建议用JS做 比较简单点追问能说的具体点吗?
我原来是单选,只是想改成多选的
string s:
s = ListBox1.SelectedValue;
怎么把s改成value的集合,因为要用到后面的sql查询里去追答两种方式 因贴吧限制字数 就写在一块了:

1</asp:ListItem>
2</asp:ListItem>
3</asp:ListItem>
4</asp:ListItem>
</asp:ListBox>
// 如果用后台取值 这里可以去掉 也可去掉按钮中的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 if(strlist.options[i].selected){
var j = strlist.options[i].value; // 定义变量 接收选中项的 Value
str+=j+","; //把Value值串起来
}
}
str=escape(str.replace(/,$/, "")); // 去掉串起来的Value值的最后一个 , 并将其格式化
// 在这里 可以将其值赋给一个隐藏域 hidden
$("Hid").value=str;
}
}
后台代码:
protected void Button1_Click(object sender, EventArgs e)
{
string str = this.Hid.Value.ToString();//用JS 就用这个
//以下是用后台接值的代码:
//string StrValue="";
//if (this.ListBox1.Items.Count > 0)
//{
// foreach (ListItem item in ListBox1.Items)
// {
// if (item.Selected)
// StrValue += item + ",";
// }
// if (StrValue != "")
// {
// StrValue = StrValue.Substring(0, StrValue.Length - 1);
// }
//}
// 这里接到值之后 你可以传到sql 语句中使用了
}
限字 太厉害 只能这样了 呵呵 希望对你有帮助
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
那里有母牛出售
宇宙中大部分物质处于什么形态?
谁知道国家对两劳释放人员都有什么政策?
隆胸从A到D杯选择多大的假体
我是绍兴的车牌可以在宁波办E丅C吗
陈寻和方茴是什么星座的
云县军隆源物流有限公司地址在哪,我要去那里
魔兽世界哀嚎洞穴打完前4个BOSS后回口在那个X
谁知道Public_Ownership的介绍?
十八届三中全会指出,使市场在资源配置钟起决
栽用郭首查字法是什么
金泫雅有没有老公,她老公是谁
跪求!港珠澳大桥几位领导:高星林、张顺善、
蒙古族如何看待蒙古历史
2米8小卧室怎样装修效果图
推荐资讯
剑灵侵蚀佩剑怎么拿?
问问有多少人用弹簧弯管器
天天象棋春秋争霸第十关怎么破。
我和一位51岁的离异女人发生了恋情,第一次见
磁力能穿透物体,隔着_____的物体能吸铁
1994年4月29早上5点左右的 生辰八字是什么
寻找专门生产T/C或涤纶的梭织色织布生产
有喜欢英雄联盟提莫队长的吗
自从让学运营这几天天天闲的没事干,真有种
韩国易诺v7和日本藤仓80s光纤熔接机那个好
求影音先锋上一个版本,这个版本没有原先的好
他是曼联队的哪位?厉不厉害的?战绩怎样?退
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?