[英]How can i display gridview records based on multi selected dropdown items in asp.net
In my application i have multi selected dropdownlist and based on selection i need to display in gridview. 在我的应用程序中,我有多个选择的下拉列表,并且基于选择,我需要显示在gridview中。 If i select two items from multi select dropdown based on that i need to display that two selected records on gridview.Below code is i selected two items i am getting first selection records only. 如果我从多重选择下拉列表中选择两个项目,则需要在gridview上显示两个选定的记录。下面的代码是我选择了两个项目,我只会得到第一个选择记录。
i tried code: 我试过代码:
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 is the multi select dropdown if i select two items from ddlcol2 i want to display that two items records on gridview. 如果我从ddlcol2中选择两项,则ddlcol2是多选下拉菜单,我想在gridview上显示两项记录。
Can anyone please tell me to how to do this. 谁能告诉我该怎么做。
Thank you 谢谢
Assume that ddcol1
is single select only 假设ddcol1
是单选
change the query string to accept multiple values 更改查询字符串以接受多个值
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()) + "')";
EDIT ( without LINQ ) 编辑 ( 不使用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.