Hi, I have solution myself. I would like to share. It may help others.
aspx page:
<asp:CheckBoxList ID="chek" OnSelectedIndexChanged="chk_click" AutoPostBack="true" runat="server"></asp:CheckBoxList><br />
<asp:DataList ID="dlchk" runat="server">
<HeaderTemplate>
<table width="600" align="center" cellpadding="10" cellspacing="10">
<tr>
<td>
Id
</td>
<td>
City
</td>
<td>
State
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("id") %>
</td>
<td>
<%#Eval("city") %>
</td>
<td>
<%#Eval("statename") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
aspx.cs (code behind):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
namespace checkboxapp
{
public partial class _Default : System.Web.UI.Page
{
DBCLASS objcon = new DBCLASS();
DataTable dbdt = new DataTable();
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
// Display the subtotal without tax when the page is first loaded.
if (!IsPostBack)
{
loaddt();
}
}
public void loaddt()
{
SqlConnection con = objcon.getconnection();
con.Open();
SqlCommand cmd = new SqlCommand("select * from chktbl",con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
Session["sesdt"] = dt;
//Filter using below line to uniqe data
dbdt = dt.DefaultView.ToTable(true,"id", "city");
con.Close();
chek.DataSource = dbdt;
chek.DataValueField = "id";
chek.DataTextField = "city";
// chek.DataTextField = "city";
chek.DataBind();
}
protected void chk_click(object sender, EventArgs e)
{
DataTable dtDatalist = new DataTable();
DataTable dtEachCity = new DataTable();
dt = (DataTable)Session["sesdt"];
DataRow[] dr;
foreach (ListItem listItem in chek.Items)
{
if (listItem.Selected)
{
//Get each selected city from checkboxlist and filter datatable baed on that and bind in datalist
dr = dt.Select("id='" + listItem.Value + "'");
if (dr.Length > 0)
{
dtEachCity = dr.CopyToDataTable();
dtDatalist.Merge(dtEachCity);
}
}
}
//Finally bind filtered data in the data list
dlchk.DataSource=dtDatalist;
dlchk.DataBind();
}
}
}
Thank you.