Hi dilipsharm,
I have created sample that full-fill your requirement.
For this sample I have used of NorthWind database that you can download using the link given below.
Download Northwind Database
HTML
<asp:FormView ID="fvCustomers" runat="server" DataKeyField="CustomerID" OnDataBound="fvCustomers_DataBound"
AllowPaging="true" OnPageIndexChanging="fvCustomers_PageIndexChanging">
<HeaderTemplate>
<table>
<tr>
<th>
ID
</th>
<th>
Name
</th>
<th>
Address
</th>
<th>
City
</th>
<th>
Country
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblCustomerID" Text='<%# Eval("CustomerID") %>' runat="server" />
</td>
<td>
<asp:Label ID="lblContactName" Text='<%# Eval("ContactName") %>' runat="server" />
</td>
<td>
<asp:Label ID="lblAddress" Text='<%# Eval("Address") %>' runat="server" />
</td>
<td>
<asp:Label ID="lblCity" Text='<%# Eval("City") %>' runat="server" />
</td>
<td>
<asp:Label ID="lblCountry" Text='<%# Eval("Country") %>' runat="server" />
</td>
</tr>
<tr>
<td colspan="5">
<asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="true" />
</td>
</tr>
<tr>
<td colspan="5">
<asp:GridView ID="gvShips" runat="server" AutoGenerateColumns="true" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:FormView>
C#
string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateCustomers();
}
}
private void PopulateCustomers()
{
DataTable dt = GetDataTable("SELECT TOP 10 CustomerID,ContactName,Address,City,Country FROM Customers ORDER BY ContactName");
if (dt.Rows.Count > 0)
{
fvCustomers.DataSource = dt;
}
else
{
fvCustomers.DataSource = null;
}
fvCustomers.DataBind();
}
private DataTable GetDataTable(string query)
{
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
protected void fvCustomers_DataBound(object sender, EventArgs e)
{
string id = (fvCustomers.FindControl("lblCustomerID") as Label).Text.Trim();
GridView orders = fvCustomers.FindControl("gvOrders") as GridView;
GridView ships = fvCustomers.FindControl("gvShips") as GridView;
orders.DataSource = GetDataTable("SELECT TOP 2 OrderID,OrderDate,RequiredDate FROM Orders WHERE CustomerID = '" + id + "'");
orders.DataBind();
ships.DataSource = GetDataTable("SELECT TOP 2 ShippedDate,ShipName,ShipAddress,ShipCity,ShipCountry FROM Orders WHERE CustomerID = '" + id + "'");
ships.DataBind();
}
protected void fvCustomers_PageIndexChanging(object sender, FormViewPageEventArgs e)
{
fvCustomers.PageIndex = e.NewPageIndex;
PopulateCustomers();
}
VB.Net
Private str As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
PopulateCustomers()
End If
End Sub
Private Sub PopulateCustomers()
Dim dt As DataTable = GetDataTable("SELECT TOP 10 CustomerID,ContactName,Address,City,Country FROM Customers ORDER BY ContactName")
If dt.Rows.Count > 0 Then
fvCustomers.DataSource = dt
Else
fvCustomers.DataSource = Nothing
End If
fvCustomers.DataBind()
End Sub
Private Function GetDataTable(query As String) As DataTable
Dim con As New SqlConnection(str)
Dim cmd As New SqlCommand(query, con)
con.Open()
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
da.Fill(dt)
con.Close()
Return dt
End Function
Protected Sub fvCustomers_DataBound(sender As Object, e As EventArgs)
Dim id As String = TryCast(fvCustomers.FindControl("lblCustomerID"), Label).Text.Trim()
Dim orders As GridView = TryCast(fvCustomers.FindControl("gvOrders"), GridView)
Dim ships As GridView = TryCast(fvCustomers.FindControl("gvShips"), GridView)
orders.DataSource = GetDataTable((Convert.ToString("SELECT TOP 2 OrderID,OrderDate,RequiredDate FROM Orders WHERE CustomerID = '") & id) + "'")
orders.DataBind()
ships.DataSource = GetDataTable((Convert.ToString("SELECT TOP 2 ShippedDate,ShipName,ShipAddress,ShipCity,ShipCountry FROM Orders WHERE CustomerID = '") & id) + "'")
ships.DataBind()
End Sub
Protected Sub fvCustomers_PageIndexChanging(sender As Object, e As FormViewPageEventArgs)
fvCustomers.PageIndex = e.NewPageIndex
PopulateCustomers()
End Sub
Screenshot