.ASPX
<asp:GridView ID="GridView1" ShowFooter="True" runat="server" AutoGenerateColumns="False" ForeColor="#333333" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Sr No.">
<FooterTemplate>
<asp:Button ID="BtnAdd" runat="server" OnClick="Add_Click" Text="Add Row"/>
</FooterTemplate>
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
</ItemTemplate>
<HeaderStyle BorderColor="Black" ForeColor="White" />
<ItemStyle Width="5%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:DropDownList ID="DropName" runat="server" DataTextField="InvDecs" DataValueField="InvID"
TabIndex="8" Width="161px">
</asp:DropDownList>
</ItemTemplate>
<HeaderStyle BorderColor="Black" ForeColor="White" />
<ItemStyle Width="20%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtqty" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lkDelete" runat="server" onclick="Delete_Click">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.CS
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
<Columns>
<asp:TemplateField HeaderText="Sr No.">
<FooterTemplate>
<asp:Button ID="BtnAdd" runat="server" OnClick="Add_Click" Text="Add Row"/>
</FooterTemplate>
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
</ItemTemplate>
<HeaderStyle BorderColor="Black" ForeColor="White" />
<ItemStyle Width="5%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:DropDownList ID="DropName" runat="server" DataTextField="InvDecs" DataValueField="InvID"
TabIndex="8" Width="161px">
</asp:DropDownList>
</ItemTemplate>
<HeaderStyle BorderColor="Black" ForeColor="White" />
<ItemStyle Width="20%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtqty" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lkDelete" runat="server" onclick="Delete_Click">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.CS
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = (DataTable)ViewState["DT"];
CreateDataTable();
RowAdd();
CreateDataTable();
RowAdd();
}
}
public void RowAdd()
{
DataTable dt = new DataTable();
dt.Rows.Add();
GridView1.DataSource = dt;
GridView1.DataBind();
dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Qty");
DataRow dr = dt.NewRow();
dr["Name"] = string.Empty;
dr["Qty"] = string.Empty;
dt.Rows.Add(dr);
ViewState["DT"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
}
// For Message
public void msgbox(string message)
{
Label lbl = new Label();
lbl.Text = "<Script> alert (' " + message + "') </Script>";
this.Page.Controls.Add(lbl);
}
//Get Max Value Of Column
public void GetMax()
{
SqlDataReader dr;
SqlCommand cmd = new SqlCommand("select max(SrNo) from MyTable", con);
con.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
{
string d = dr[0].ToString();
if (d == "")
{
ViewState["Max"] = "1";//set the value in viewstate which name is id
}
else
{
int r = Convert.ToInt32(dr[0].ToString());
r = r + 1;
ViewState["Max"] = r.ToString();
}
}
dr.Close();
cmd.Dispose();
con.Close();
}
DataRow dr = dt.NewRow();
dr["Name"] = string.Empty;
dr["Qty"] = string.Empty;
dt.Rows.Add(dr);
ViewState["DT"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
}
// For Message
public void msgbox(string message)
{
Label lbl = new Label();
lbl.Text = "<Script> alert (' " + message + "') </Script>";
this.Page.Controls.Add(lbl);
}
//Get Max Value Of Column
public void GetMax()
{
SqlDataReader dr;
SqlCommand cmd = new SqlCommand("select max(SrNo) from MyTable", con);
con.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
{
string d = dr[0].ToString();
if (d == "")
{
ViewState["Max"] = "1";//set the value in viewstate which name is id
}
else
{
int r = Convert.ToInt32(dr[0].ToString());
r = r + 1;
ViewState["Max"] = r.ToString();
}
}
dr.Close();
cmd.Dispose();
con.Close();
}
//Row DataBound Event To Bind Gridview
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList dropName = (DropDownList)e.Row.FindControl("DropName");
dropName.DataSource = dl.GridviewBind(bl);
dropName.DataBind();
dropName.Items.Insert(0, new ListItem("----Select----", "0"));
}
}
protected void CreateDataTable()
{
int rowIndex = 0;
if (ViewState["DT"] != null)
{
dt = (DataTable)ViewState["DT"];
DataRow dr1 = null;
if (dt.Rows.Count > 0)
{
for (int i = 1; i <= dt.Rows.Count; i++)
{
DropDownList DropName= (DropDownList)GridView1.Rows[rowIndex].Cells[0].FindControl("DropName");
TextBox Qty = (TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("txtqty");
dr1 = dt.NewRow();
dt.Rows[i - 1]["Name"] = DropName.SelectedValue;
dt.Rows[i - 1]["Qty"] = Qty.Text;
rowIndex++;
}
dt.Rows.Add(dr1);
ViewState["DT"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count > 0)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
}
}
}
public void AddData()
{
int rowIndex = 0;
if (ViewState["DT"] != null)
{
DataTable dt2 = (DataTable)ViewState["DT"];
if (dt2.Rows.Count > 0)
{
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow drValues = dtValues.NewRow();
DropDownList DropName= (DropDownList)GridView1.Rows[rowIndex].Cells[0].FindControl("DropName");
TextBox Qty = (TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("txtqty");
Qty.Text = dt2.Rows[i]["Qty"].ToString();
DropName.SelectedValue = dt2.Rows[i]["Name"].ToString();
rowIndex++;
}
}
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList dropName = (DropDownList)e.Row.FindControl("DropName");
dropName.DataSource = dl.GridviewBind(bl);
dropName.DataBind();
dropName.Items.Insert(0, new ListItem("----Select----", "0"));
}
}
protected void CreateDataTable()
{
int rowIndex = 0;
if (ViewState["DT"] != null)
{
dt = (DataTable)ViewState["DT"];
DataRow dr1 = null;
if (dt.Rows.Count > 0)
{
for (int i = 1; i <= dt.Rows.Count; i++)
{
DropDownList DropName= (DropDownList)GridView1.Rows[rowIndex].Cells[0].FindControl("DropName");
TextBox Qty = (TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("txtqty");
dr1 = dt.NewRow();
dt.Rows[i - 1]["Name"] = DropName.SelectedValue;
dt.Rows[i - 1]["Qty"] = Qty.Text;
rowIndex++;
}
dt.Rows.Add(dr1);
ViewState["DT"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count > 0)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
}
}
}
public void AddData()
{
int rowIndex = 0;
if (ViewState["DT"] != null)
{
DataTable dt2 = (DataTable)ViewState["DT"];
if (dt2.Rows.Count > 0)
{
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow drValues = dtValues.NewRow();
DropDownList DropName= (DropDownList)GridView1.Rows[rowIndex].Cells[0].FindControl("DropName");
TextBox Qty = (TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("txtqty");
Qty.Text = dt2.Rows[i]["Qty"].ToString();
DropName.SelectedValue = dt2.Rows[i]["Name"].ToString();
rowIndex++;
}
}
}
}
//Add Button
protected void Add_Click(object sender, EventArgs e)
{
CreateDataTable();
AddData();
}
protected void Add_Click(object sender, EventArgs e)
{
CreateDataTable();
AddData();
}
//Delete Row
protected void lkDelete_Click(object sender, EventArgs e)
{
LinkButton lk = (LinkButton)sender;
GridViewRow gr = (GridViewRow)lk.NamingContainer;
DataTable dt = (DataTable)ViewState["DT"];
DataRow drow = dt.Rows[gr.RowIndex];
drow.Delete();
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox Qty = (TextBox)GridView1.Rows[i].FindControl("txtqty");
DropDownList DropName= (DropDownList)GridView1.Rows[i].FindControl("DropName");
Qty.Text = dt.Rows[i]["Qty"].ToString();
if (string.IsNullOrEmpty(dt.Rows[i]["MatId"].ToString()) == false)
{
DropName.SelectedValue = dt.Rows[i]["Name"].ToString();
}
}
ViewState["DT"] = dt;
}
//Update Button Click To Get Record From Gridview
protected void Edit_Click(object sender, EventArgs e)
{
Save.Text = "Update";
LinkButton G1 = (LinkButton)sender;
GridViewRow gr = (GridViewRow)G1.NamingContainer;
Label ID = (Label)gvRatio.Rows[gr.RowIndex].FindControl("lblid");
bl.Sr = Convert.ToInt32(ID.Text);
ViewState["Id"] = ID.Text;
DataTable dt1 = new DataTable();
dt1 = dl.GridviewsBind(bl);
if (dt1.Rows.Count > 0)
{
LinkButton lk = (LinkButton)sender;
GridViewRow gr = (GridViewRow)lk.NamingContainer;
DataTable dt = (DataTable)ViewState["DT"];
DataRow drow = dt.Rows[gr.RowIndex];
drow.Delete();
GridView1.DataSource = dt;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox Qty = (TextBox)GridView1.Rows[i].FindControl("txtqty");
DropDownList DropName= (DropDownList)GridView1.Rows[i].FindControl("DropName");
Qty.Text = dt.Rows[i]["Qty"].ToString();
if (string.IsNullOrEmpty(dt.Rows[i]["MatId"].ToString()) == false)
{
DropName.SelectedValue = dt.Rows[i]["Name"].ToString();
}
}
ViewState["DT"] = dt;
}
//Update Button Click To Get Record From Gridview
protected void Edit_Click(object sender, EventArgs e)
{
Save.Text = "Update";
LinkButton G1 = (LinkButton)sender;
GridViewRow gr = (GridViewRow)G1.NamingContainer;
Label ID = (Label)gvRatio.Rows[gr.RowIndex].FindControl("lblid");
bl.Sr = Convert.ToInt32(ID.Text);
ViewState["Id"] = ID.Text;
DataTable dt1 = new DataTable();
dt1 = dl.GridviewsBind(bl);
if (dt1.Rows.Count > 0)
{
GridView1.DataSource = dt1;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Qty");
DataRow dr = null;
for (int i = 0; i < dt1.Rows.Count; i++)
{
TextBox Qty = (TextBox)GridView1.Rows[i].FindControl("txtqty");
DropDownList DropName= (DropDownList)GridView1.Rows[i].FindControl("DropName");
dr = dt.NewRow();
Qty.Text = dt1.Rows[i]["Qty"].ToString();
DropName.SelectedValue = dt1.Rows[i]["MatId"].ToString();
dr["DropName"] = dt1.Rows[i]["DropName"].ToString();
dr["Qty"] = dt1.Rows[i]["Qty"].ToString();
dt.Rows.Add(dr);
}
}
ViewState["DT"] = dt;
}
GridView1.DataSource = dt1;
GridView1.DataBind();
if (GridView1.Rows.Count == 1)
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = false;
}
}
else
{
foreach (GridViewRow grow in GridView1.Rows)
{
GridView1.Columns[3].Visible = true;
}
}
dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Qty");
DataRow dr = null;
for (int i = 0; i < dt1.Rows.Count; i++)
{
TextBox Qty = (TextBox)GridView1.Rows[i].FindControl("txtqty");
DropDownList DropName= (DropDownList)GridView1.Rows[i].FindControl("DropName");
dr = dt.NewRow();
Qty.Text = dt1.Rows[i]["Qty"].ToString();
DropName.SelectedValue = dt1.Rows[i]["MatId"].ToString();
dr["DropName"] = dt1.Rows[i]["DropName"].ToString();
dr["Qty"] = dt1.Rows[i]["Qty"].ToString();
dt.Rows.Add(dr);
}
}
ViewState["DT"] = dt;
}

