Hi aneri,
I have created a sample which full fill your requirement you need to modify according to your need.
HTML
<div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
Category:-
</td>
<td>
<div id="dynamicCheckBoxes" runat="server">
</div>
</td>
<td>
<asp:Label ID="lblCount" runat="server" />
</td>
</tr>
</table>
<br />
<br />
<table id="tblCatgeory">
</table>
</div>
<div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var selectedCagtegory = [];
$('input[name=chkbox]').click(function () {
$.each($('input[name=chkbox]'), function () {
var checked = $(this)[0].checked;
if (checked) {
selectedCagtegory.push($(this).val());
}
});
if (!$(this)[0].checked) {
//For removing the unchecked checkbox values.
removeItem = $(this).val()
selectedCagtegory = jQuery.grep(selectedCagtegory, function (value) {
return value != removeItem;
});
}
//values of checked checkboxes.
var categoryId = selectedCagtegory;
if (categoryId != "") {
$.ajax({
type: "POST",
url: "Default4.aspx/GetSelectedCategoryImages",
data: '{categoryId: "' + categoryId + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$('[id*=tblCatgeory]').empty();
var table = $('[id*=tblCatgeory]')
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
var CategoryImages = xml.find("CategoryImages");
$('[id*=lblCount]').html("Total Record:-" + CategoryImages.length);
//Add Header Row.
var row = $("<tr />");
CategoryImages.eq(0).children().each(function () {
var headerCell = $("<th />");
headerCell.html(this.nodeName);
row.append(headerCell);
});
$('[id*=tblCatgeory]').append(row);
//Append Data Row.
$.each(CategoryImages, function () {
var Name = $(this).find("Name").text();
var url = $(this).find("Url").text();
var row = $("<tr />");
var img = $("<img />");
img[0].src = url;
row.append("<td>" + Name + "</td><td>" + $(img)[0].outerHTML + "</td>");
$('[id*=tblCatgeory]').append(row);
});
}
});
}
else {
$('[id*=tblCatgeory]').empty();
$('[id*=lblCount]').html("");
}
});
});
</script>
</div>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Bind Your checkboxes according to this as i am assigning the values to the checkboxes.
DataTable dt = new DataTable();
dt.Columns.Add("Category");
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Rows.Add(4);
string strHtm1 = string.Empty;
for (int i = 0; i < dt.Rows.Count; i++)
{
strHtm1 += "<input type='checkbox' name='chkbox' value='" + dt.Rows[i]["Category"].ToString() + "'/>" + dt.Rows[i]["Category"].ToString() + "</br>";
}
dynamicCheckBoxes.InnerHtml = strHtm1;
}
}
[WebMethod]
public static string GetSelectedCategoryImages(string categoryId)
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
string query = "SELECT [Name],[Url] FROM [Images] WHERE CategoryId IN (" + categoryId + ")";
SqlCommand cmd = new SqlCommand(query);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
cmd.Connection = con;
DataSet ds = new DataSet();
DataTable dt = new DataTable("CategoryImages");
sda.Fill(dt);
ds.Tables.Add(dt);
return ds.GetXml();
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
'Bind Your checkboxes according to this as i am assigning the values to the checkboxes.
Dim dt As New DataTable()
dt.Columns.Add("Category")
dt.Rows.Add(1)
dt.Rows.Add(2)
dt.Rows.Add(3)
dt.Rows.Add(4)
Dim strHtm1 As String = String.Empty
For i As Integer = 0 To dt.Rows.Count - 1
strHtm1 += "<input type='checkbox' name='chkbox' value='" + dt.Rows(i)("Category").ToString() + "'/>" + dt.Rows(i)("Category").ToString() + "</br>"
Next
dynamicCheckBoxes.InnerHtml = strHtm1
End If
End Sub
<WebMethod()> _
Public Shared Function GetSelectedCategoryImages(categoryId As String) As String
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Dim con As New SqlConnection(strConnString)
Dim query As String = (Convert.ToString("SELECT [Name],[Url] FROM [Images] WHERE CategoryId IN (") & categoryId) + ")"
Dim cmd As New SqlCommand(query)
Dim sda As New SqlDataAdapter(cmd)
cmd.Connection = con
Dim ds As New DataSet()
Dim dt As New DataTable("CategoryImages")
sda.Fill(dt)
ds.Tables.Add(dt)
Return ds.GetXml()
End Function
ScreenShot