Dear All,
May i know how to calculate input values by each row in gridview ?
Example input quantity is 10, then generate the serial number for each row quantity is 1
Actual expect result

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebFormtest2.aspx.cs" Inherits="acmkweb.MM.WebFormtest2" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManager ID="ScriptManager1" AsyncPostBackTimeOut="3600" runat="server">
</asp:ScriptManager>
<asp:Table ID="QueryTypeTBL" runat="server">
<asp:TableRow ID="TableRow1" runat="server" ForeColor="Teal">
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" BackColor="#0C0C25" ForeColor="White"> Type :</asp:TableHeaderCell>
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" Width="200" HorizontalAlign="Left" ForeColor="Red" BackColor="ControlLight">
<asp:DropDownList ID="Type" runat="server" AutoPostBack = "False" ></asp:DropDownList>
<asp:RequiredFieldValidator ID="WMCContTypeRFV" runat="server" ErrorMessage="***" InitialValue="--Select Type--" ControlToValidate="Type" ValidationGroup="Add"></asp:RequiredFieldValidator>
</asp:TableHeaderCell>
</asp:TableRow>
<asp:TableRow ID="TableRow13" runat="server" ForeColor="Teal">
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" BackColor="#0C0C25" ForeColor="White"> Quantity:</asp:TableHeaderCell>
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" Width="200" HorizontalAlign="Left" ForeColor="Red" BackColor="ControlLight">
<asp:TextBox ID="Qty" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="WMCConQtyRFV" runat="server" ErrorMessage="***" ControlToValidate="Qty" ValidationGroup="Add"></asp:RequiredFieldValidator>
</asp:TableHeaderCell>
</asp:TableRow>
<asp:TableRow ID="TableRow11" runat="server" ForeColor="Teal">
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" BackColor="#0C0C25" ForeColor="White">Spare Part Serial Number :</asp:TableHeaderCell>
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" Width="200" HorizontalAlign="Left" BackColor="ControlLight">
<asp:TextBox ID="WMCSerialNum" runat="server" ForeColor="#0C0C25"></asp:TextBox>
</asp:TableHeaderCell>
</asp:TableRow>
<asp:TableRow ID="TableRow16" runat="server" ForeColor="Teal">
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" ColumnSpan="4" HorizontalAlign="Center" >
<asp:Button ID="Add" runat="server" Text="Add" ValidationGroup="Add" OnClick="WMAdd_Click" />
</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
<asp:Table ID="GridViewFE" runat="server" ForeColor="Teal">
<asp:TableRow ID="TableRow19" runat="server" ForeColor="Teal">
<asp:TableHeaderCell BorderColor="Black" BorderWidth="1" ForeColor="BLACK" HorizontalAlign="Center" >
<asp:GridView ID="GridView1" runat="server" OnRowDeleting="GridView1_RowDeleting" AutoGenerateDeleteButton="true">
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="WMSubmit_Click" />
</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;
using System.IO;
namespace acmkweb.MM
{
public partial class WebFormtest2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
FillContainerType();
}
ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
}
private void FillContainerType()
{
Type.Items.Clear();
string selectSQL = "SELECT CONTAINER_CODE,CONTAINER_TYPE,CONTAINER_DESC FROM [CIMProRPT01].[dbo].[WM_CONTAINERTYPE]";
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CIMProRPT01ConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataReader reader;
try
{
con.Open();
reader = cmd.ExecuteReader();
Type.Items.Add("--Select Type--");
while (reader.Read())
{
ListItem newItem = new ListItem();
newItem.Text = reader["CONTAINER_CODE"].ToString();
newItem.Value = reader["CONTAINER_CODE"].ToString();
Type.Items.Add(newItem);
}
reader.Close();
}
catch (Exception)
{
}
finally
{
con.Close();
}
}
private void BindGrid(int rowcount)
{
DataTable dt = new DataTable();
dt.Columns.Add(new System.Data.DataColumn("Type", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("QUANTITY", typeof(String)));
dt.Columns.Add(new System.Data.DataColumn("SparePartSerialNumber", typeof(String)));
if (ViewState["CurrentData"] == null)
{
for (int i = 1; i <= rowcount; i++)
{
string serialNumber = this.WMCSerialNum.Text.Trim();
string newSerialNumber = serialNumber.Substring(0, serialNumber.Length - 2);
dt.Rows.Add(Type.SelectedItem.Text, Qty.Text, newSerialNumber + (i).ToString());
//dt.Rows.Add(string.Empty, string.Empty, string.Empty);
}
GridView1.DataSource = dt;
GridView1.DataBind();
// Store the DataTable in ViewState to retain the values
ViewState["CurrentData"] = dt;
}
else
{
dt = (DataTable)ViewState["CurrentData"];
for (int i = 1; i <= rowcount; i++)
{
string serialNumber = this.WMCSerialNum.Text.Trim();
string newSerialNumber = serialNumber.Substring(0, serialNumber.Length - 2);
//dt.Rows.Add(string.Empty, string.Empty, string.Empty);
dt.Rows.Add(Type.SelectedItem.Text, Qty.Text, newSerialNumber + (i).ToString());
}
GridView1.DataSource = dt;
GridView1.DataBind();
// Store the DataTable in ViewState to retain the values
ViewState["CurrentData"] = dt;
}
}
protected void WMAdd_Click(object sender, EventArgs e)
{
GridViewFE.Visible = true;
int numbers = int.Parse(this.Qty.Text.Trim());
string serialNumber = this.WMCSerialNum.Text.Trim();
string newSerialNumber = serialNumber.Substring(0, serialNumber.Length - 2);
this.BindGrid(numbers);
//Here i am adding label if you dont want it then comment till end of for loop
int cellCount = this.GridView1.Rows[0].Cells.Count;
int rowsCount = this.GridView1.Rows.Count;
Qty.Text = string.Empty;
WMCSerialNum.Text = string.Empty;
Qty.Focus();
WMCSerialNum.Focus();
}
protected void WMSubmit_Click(object sender, EventArgs e)
{
foreach (GridViewRow oItem in GridView1.Rows)
{
string str1 = oItem.Cells[1].Text;
string str2 = oItem.Cells[2].Text;
string str3 = oItem.Cells[3].Text;
insertData(str1, str2, str3);
}
Response.Redirect("WebFormTest.aspx?stat=insert");
}
public void insertData(string str1, string str2, string str3)
{
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CIMProRPT01ConnectionString"].ConnectionString);
string sql = "INSERT INTO [CIMProRPT01].[dbo].[test] (test1,test2,test3) VALUES ('" + str1 + "','" + str2 + "','" + str3 + "')";
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DataTable dt = (DataTable)ViewState["CurrentData"];
dt.Rows[e.RowIndex].Delete();
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
Kindly advise, thank you