Hi micah,
Refer below sample code.
HTML
<asp:DropDownList ID="ddlCountries" runat="server" multiple="multiple" CssClass="multiselect">
<asp:ListItem Text="Argentina" Value="Argentina"></asp:ListItem>
<asp:ListItem Text="Austria" Value="Austria"></asp:ListItem>
<asp:ListItem Text="Belgium" Value="Belgium"></asp:ListItem>
<asp:ListItem Text="Brazil" Value="Brazil"></asp:ListItem>
<asp:ListItem Text="Canada" Value="Canada"></asp:ListItem>
</asp:DropDownList>
<asp:HiddenField ID="hfSelected" runat="server" />
<asp:Button Text="Filter" runat="server" OnClick="Country_Changed" />
<hr />
<asp:TextBox ID="txtDetails" runat="server"></asp:TextBox>
<div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css">
<script type="text/javascript">
$(function () {
$('[id*=ddlCountries]').multiselect({ includeSelectAllOption: true });
$('#ddlCountries').on('change', function () {
$('#<%=hfSelected.ClientID%>').val($(this).val());
});
});
</script>
</div>
Namespaces
C#
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
VB.Net
Imports System.Collections.Generic
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Code
C#
protected void Country_Changed(object sender, EventArgs e)
{
string query = "SELECT ContactName FROM Customers";
string selectedCountries = hfSelected.Value;
string condition = string.Empty;
for (int i = 0; i < selectedCountries.Split(',').Length; i++)
{
condition += string.Format("'{0}',", selectedCountries.Split(',')[i]);
}
if (!string.IsNullOrEmpty(condition))
{
condition = string.Format(" WHERE Country IN ({0})", condition.Substring(0, condition.Length - 1));
}
DataTable dt = GetDataTable(query + condition);
List<string> names = new List<string>();
foreach (DataRow dr in dt.Rows)
{
names.Add(dr["ContactName"].ToString());
}
txtDetails.Text = string.Join(" ", names.ToArray());
}
private DataTable GetDataTable(string query)
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
cmd.Connection = con;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
}
VB.Net
Protected Sub Country_Changed(ByVal sender As Object, ByVal e As EventArgs)
Dim query As String = "SELECT ContactName FROM Customers"
Dim selectedCountries As String = hfSelected.Value
Dim condition As String = String.Empty
For i As Integer = 0 To selectedCountries.Split(","c).Length - 1
condition += String.Format("'{0}',", selectedCountries.Split(","c)(i))
Next
If Not String.IsNullOrEmpty(condition) Then
condition = String.Format(" WHERE Country IN ({0})", condition.Substring(0, condition.Length - 1))
End If
Dim dt As DataTable = GetDataTable(query & condition)
Dim names As List(Of String) = New List(Of String)()
For Each dr As DataRow In dt.Rows
names.Add(dr("ContactName").ToString())
Next
txtDetails.Text = String.Join(" ", names.ToArray())
End Sub
Private Function GetDataTable(ByVal query As String) As DataTable
Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(conString)
Using cmd As SqlCommand = New SqlCommand(query)
Using sda As SqlDataAdapter = New SqlDataAdapter(cmd)
cmd.Connection = con
Using dt As DataTable = New DataTable()
sda.Fill(dt)
Return dt
End Using
End Using
End Using
End Using
End Function