VS(C#)中怎么使用ListBox的多选功能,提取所选的value值集合
答案:2 悬赏:70 手机版
解决时间 2021-11-27 01:56
- 提问者网友:蓝琪梦莎
- 2021-11-26 18:14
VS(C#)中怎么使用ListBox的多选功能,提取所选的value值集合
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-11-26 18:31
在窗体上放置一个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 );
}
==========================================================================
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 );
}
全部回答
- 1楼网友:山有枢
- 2021-11-26 20:00
设置其属性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 语句中使用了
}
限字 太厉害 只能这样了 呵呵 希望对你有帮助
我原来是单选,只是想改成多选的
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
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 语句中使用了
}
限字 太厉害 只能这样了 呵呵 希望对你有帮助
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯