
[英]How can i show the selected items as comma separated in the Multi select dropdown text field in asp.net
[英]How can i display gridview records based on multi selected dropdown items in asp.net
在我的应用程序中,我有多个选择的下拉列表,并且基于选择,我需要显示在gridview中。 如果我从多重选择下拉列表中选择两个项目,则需要在gridview上显示两个选定的记录。下面的代码是我选择了两个项目,我只会得到第一个选择记录。
我试过代码:
protected void ddlcol2_SelectedIndexChanged(object sender, EventArgs e)
{
string qry = "select * from Collections where col1='" + ddlcol1.SelectedValue.ToString() + "' and col2='" + ddlcol2.SelectedValue.ToString() + "'";
SqlCommand cmd = new SqlCommand(qry,con);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
Gridview1.DataSource = dt;
Gridview1.DataBind();
}
如果我从ddlcol2中选择两项,则ddlcol2是多选下拉菜单,我想在gridview上显示两项记录。
谁能告诉我该怎么做。
谢谢
假设ddcol1
是单选
更改查询字符串以接受多个值
string qry = "select * from Collections where col1='" +
ddlcol1.SelectedValue.ToString() +
"' and col2 in ('" +
string.Join("','", ddlcol2.Items.Cast<ListItem>
.Where(i => i.Selected)
.Select(i => i.Value)
.ToArray()) + "')";
编辑 ( 不使用LINQ )
var sCol2 = string.Empty;
foreach(var item in ddlcol2.Items)
{
if (item.Selected)
sCol2 += "'" + item.Value + "',"
}
// remove the last ,
if (sCol2.Length > 0)
sCol2 = sCol2.Substring(0, sCol2.Length - 1);
string qry = "select * from Collections where col1 = '" +
ddlcol1.SelectedValue.ToString() +
"' and col2 in (" +
sCol2 + ")";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.