Hi jmprateek,
Check this example. Now please take its reference and correct your code.
Database
For this example I have used of Northwind database that you can download using the link given below.
Download Northwind Database
HTML
<asp:Repeater ID="rptrTables" runat="server" OnItemDataBound="rptrTables_ItemDataBound">
<ItemTemplate>
<div class="col-md-6">
<div class="card card-info">
<div class="card-header with-border">
<h3 class="card-title">
<asp:Label ID="lblTableNumber" runat="server" Text='<%# Eval("CustomerID") %>'></asp:Label></h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-widget="collapse">
<i class="fa fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<asp:GridView ID="grdOrder" runat="server" AutoGenerateColumns="false" AllowPaging="true"
CssClass="table table-bordered table-hover table-responsive" GridLines="None"
PageSize="10">
<Columns>
<asp:CommandField ShowDeleteButton="true" ControlStyle-CssClass="btn btn-danger fa fa-trash"
DeleteText="" HeaderText="Remove" />
<asp:BoundField DataField="EmployeeID" HeaderText="Sl. No." />
<asp:TemplateField HeaderText="Item Name">
<ItemTemplate>
<asp:DropDownList ID="drpItemname" runat="server" CssClass="form-control select2"
OnSelectedIndexChanged="GetItemDetails" AutoPostBack="true">
<asp:ListItem Text="Select" Value="0" Selected="True" />
<asp:ListItem Text="TOMSP" Value="TOMSP" />
<asp:ListItem Text="HANAR" Value="HANAR" />
<asp:ListItem Text="VICTE" Value="VICTE" />
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:Label ID="lblUnitPrice" runat="server" Text='<%# Eval("Freight")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Qty">
<ItemTemplate>
<asp:Label ID="lblQuantity" runat="server" Text="5"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Line Total">
<ItemTemplate>
<asp:Label ID="lblLineTotal" runat="server" Text="10"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Add Item" ConvertEmptyStringToNull="False">
<ItemTemplate>
<asp:Button ID="ButtonAdd" runat="server" CssClass="btn btn-primary" Text="Add" OnClick="AddItem"
CausesValidation="False" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
<div class="card-footer">
<div class="pull-right">
<asp:Button ID="btnSubmit" runat="server" CausesValidation="false" TabIndex="2" CssClass="btn btn-primary"
Text="Print KOT" />
<asp:Button ID="Button1" runat="server" CausesValidation="false" TabIndex="2" CssClass="btn btn-primary"
Text="Print Final Bill" />
<asp:Button ID="Button2" runat="server" CausesValidation="false" TabIndex="2" CssClass="btn btn-primary"
Text="Complete Order" />
</div>
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
Namespaces
C#
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
VB.Net
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
rptrTables.DataSource = GetData("SELECT TOP 3 * FROM Customers");
rptrTables.DataBind();
}
}
protected void GetItemDetails(object sender, EventArgs e)
{
DropDownList ddl = sender as DropDownList;
GridViewRow row = ddl.NamingContainer as GridViewRow;
Label UnitPrice = row.FindControl("lblUnitPrice") as Label;
Label QTTY = row.FindControl("lblQuantity") as Label;
Label LINETOTAL = row.FindControl("lblLineTotal") as Label;
ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('UnitPrice : " + UnitPrice.Text
+ "\\r\\nQuantity : " + QTTY.Text
+ "\\r\\nTotal : " + LINETOTAL.Text
+ "\\r\\nItem : " + ddl.SelectedItem.ToString() + "')", true);
}
private static DataTable GetData(string query)
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = query;
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
}
}
}
}
protected void rptrTables_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string customerId = (e.Item.FindControl("lblTableNumber") as Label).Text;
GridView gvOrders = e.Item.FindControl("grdOrder") as GridView;
gvOrders.DataSource = GetData(string.Format("SELECT TOP 3 * FROM Orders WHERE CustomerId='{0}'", customerId));
gvOrders.DataBind();
}
}
protected void AddItem(object sender, EventArgs e)
{
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
rptrTables.DataSource = GetData("SELECT TOP 3 * FROM Customers")
rptrTables.DataBind()
End If
End Sub
Protected Sub GetItemDetails(ByVal sender As Object, ByVal e As EventArgs)
Dim ddl As DropDownList = TryCast(sender, DropDownList)
Dim row As GridViewRow = TryCast(ddl.NamingContainer, GridViewRow)
Dim UnitPrice As Label = TryCast(row.FindControl("lblUnitPrice"), Label)
Dim QTTY As Label = TryCast(row.FindControl("lblQuantity"), Label)
Dim LINETOTAL As Label = TryCast(row.FindControl("lblLineTotal"), Label)
ClientScript.RegisterClientScriptBlock(Me.[GetType](), "", "alert('UnitPrice : " & UnitPrice.Text _
& "\r\nQuantity : " + QTTY.Text _
& "\r\nTotal : " + LINETOTAL.Text _
& "\r\nItem : " + ddl.SelectedItem.ToString() & "')", True)
End Sub
Private Shared Function GetData(ByVal query As String) As DataTable
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand()
cmd.CommandText = query
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As DataSet = New DataSet()
Dim dt As DataTable = New DataTable()
sda.Fill(dt)
Return dt
End Using
End Using
End Using
End Using
End Function
Protected Sub rptrTables_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim customerId As String = (TryCast(e.Item.FindControl("lblTableNumber"), Label)).Text
Dim gvOrders As GridView = TryCast(e.Item.FindControl("grdOrder"), GridView)
gvOrders.DataSource = GetData(String.Format("SELECT TOP 3 * FROM Orders WHERE CustomerId='{0}'", customerId))
gvOrders.DataBind()
End If
End Sub
Protected Sub AddItem(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Screenshot
