Hi Rose,
I have created a sample which full fill your requirement you need to modify the code according to your need.
HTML
<div class="row">
<div class="panel ">
<div class="panel-body">
<table>
<tr>
<td>
<a class="btn btn-success" data-toggle="modal" href="#myModal">Default</a>
</td>
</tr>
</table>
<div class="modal fade " id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×</button>
<h4 class="modal-title">
Default Modal Tittle</h4>
</div>
<div class="modal-body">
<asp:Panel CssClass="panel" ID="Panel1" runat="server" ScrollBars="Vertical">
<div class="col-md-12">
<div class="panel-content">
<div>
<asp:DataList ID="DataList1" runat="server" OnItemDataBound="dlEmployees_ItemDataBound">
<ItemTemplate>
<asp:Label ID="lblRank" Font-Bold="true" Text='<%# string.Format("CS {0}",Eval("CS")) %>'
runat="server" />
<table class="table table-responsive table-hover ">
<tr>
<th>
ID
</th>
<th>
NAME
</th>
</tr>
</table>
<asp:Repeater ID="rptEmployees" runat="server">
<ItemTemplate>
<table class="table table-responsive table-hover " style="border-collapse: collapse;
border: initial;">
<tr>
<td>
<%# Eval("ID") %>
</td>
<td>
<%# Eval("NAME") %>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:DataList>
</div>
<asp:Button runat="server" ID="Button1" CssClass="btn btn-xs btn-danger pull-right"
Style="font-size: medium" Text="Close" />
</div>
</div>
</asp:Panel>
</div>
<div class="modal-footer">
<button data-dismiss="modal" class="btn btn-default" type="button">
Close</button>
<button class="btn btn-success" type="button">
Save changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Employee.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
public class Employees
{
public static DataTable BindDataList()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("CS"), new DataColumn("Name"), new DataColumn("Id") });
dt.Rows.Add(1, "Arun", 123);
dt.Rows.Add(2, "Varun", 456);
dt.Rows.Add(3, "Tarun", 789);
dt.Rows.Add(1, "Karan", 789);
dt.Rows.Add(2, "Saran", 951);
return dt;
}
}
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
//Binding the Datalist from CS page function.
dt = Employees.BindDataList();
DataList1.DataSource = dt.AsEnumerable()
.GroupBy(r => new { Rank = r["CS"] })
.Select(g => g.OrderBy(r => r["CS"]).First())
.CopyToDataTable();
DataList1.DataBind();
}
}
protected void dlEmployees_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string lblRank = (e.Item.FindControl("lblRank") as Label).Text.Split(' ')[1];
Repeater rptEmployees = e.Item.FindControl("rptEmployees") as Repeater;
//Binding the Datalist from CS page function.
DataTable dt = Employees.BindDataList();
DataView dv = new DataView(dt);
dv.RowFilter = "CS =" + lblRank;
rptEmployees.DataSource = dv;
rptEmployees.DataBind();
}
}
ScreenShot
