Click here to Skip to main content
15,894,017 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;

public partial class Default2 : System.Web.UI.Page
{
    general gen=new general();
    List<sqlparameter> pList;
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            fillCustomerName();
            fillItem();
            DataTable dtMax = gen.GetDataTable("SPSelectDCNMForMaxRecord");

            if (dtMax != null && dtMax.Rows.Count > 0 && dtMax.Rows[0]["maxRecord"] != null)
            {

                string strMaxNo = (Convert.ToInt32(dtMax.Rows[0]["maxRecord"].ToString()) + 1).ToString();

                lblDCNO.Text = strMaxNo.PadLeft(10, '0');
               

            }
            else
            {
                lblDCNO.Text = "0000000001";
            }
       
            txtDate.Text = DateTime.Today.Date.ToString("dd/MM/yyyy");
            btnUpdate.Visible = false;
            btnCancel.Visible = false;
        }
        
       
    }
    #region "Fill Dropdown For Customer Name"
    private void fillCustomerName()
    {
        DataTable dtCustomer = gen.GetDataTable("SPSelectCUST");
        ddlstName.DataTextField = "Name";
        ddlstName.DataValueField = "CUST_CD";
        ddlstName.DataSource = dtCustomer;
        ddlstName.DataBind();
    }
    #endregion
    #region "Fill Dropdown For Item"
    private void fillItem()    
    {
        DataTable dtItem = gen.GetDataTable("SPselectITEM");
        ddlstItem.DataTextField = "ST_DESC";
        ddlstItem.DataValueField = "ST_CD";
        ddlstItem.DataSource = dtItem;
        ddlstItem.DataBind();
        
    }
    #endregion
    #region "Bind Gridview"
    private void Bindgrid(int rowcount)
    {
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("SR_NO", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("Item", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("Qty", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("Rate", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("Amount", typeof(String)));

        if (ViewState["CurrentData"] != null)
        {
            for (int i = 0; i < rowcount + 1; i++)
            {
                dt = (DataTable)ViewState["CurrentData"];
                if (dt.Rows.Count > 0)
                {
                    dr = dt.NewRow();
                    dr[0] = dt.Rows[0][0].ToString();
                }
            }
            dr = dt.NewRow();
            dr[0] = txtSrno.Text;
            dr[1] = ddlstItem.SelectedItem.Text.ToString();
            dr[2] = txtQty.Text;
            dr[3] = txtRate.Text;
            dr[4] = txtAmount.Text;
            dt.Rows.Add(dr);
        }
        else
        {
            dr = dt.NewRow();
            dr[0] = txtSrno.Text;
            dr[1] = ddlstItem.SelectedItem.Text.ToString();
            dr[2] = txtQty.Text;
            dr[3] = txtRate.Text;
            dr[4] = txtAmount.Text;
            dt.Rows.Add(dr);
        }
        if (ViewState["CurrentData"] != null)
        {
            GridView1.DataSource = (DataTable)ViewState["CurrentData"];
            GridView1.DataBind();
        }
        else
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        ViewState["CurrentData"] = dt;
        
        //lblTotal.Text =dt.Compute(Convert.ToDouble( "sum(Amount)", "")).ToString();
    }
    #endregion
    #region "Save Data In GridView"
    protected void btnSave_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        if (ViewState["CurrentData"] != null)
        {
            dt = (DataTable)ViewState["CurrentData"];

            
            int count = dt.Rows.Count;
            Bindgrid(count);
            
        }
        else
        {
            
            //int sum = 0;
            //foreach (DataRow dr in dt.Rows)
            //{
            //    foreach (DataColumn dc in dt.Columns)
            //    {
            //        sum += (int)dr[dc];
            //    }
            //} 
            Bindgrid(0);
        }
        txtSrno.Text = string.Empty;
        ddlstItem.SelectedIndex = -1;
        txtQty.Text = string.Empty;
        txtRate.Text = string.Empty;

        txtAmount.Text = string.Empty;

       

    }
    #endregion
  
    protected void txtChalan_No_TextChanged(object sender, EventArgs e)
    {
        DataTable dtchk = gen.GetDataTable("SPChkChalan");
        if (dtchk.Rows.Count > 0)
        {
            lblMsg.Text = "Chalan Number Already there";
        }
        else
        {
            lblMsg.Text = "Chalan Number Available";
        }

    }
    protected void txtQty_TextChanged(object sender, EventArgs e)
    {
        txtAmount.Text = Convert.ToString((Convert.ToInt32(txtQty.Text.Trim())) * (Convert.ToInt32(txtRate.Text.Trim())));
    }
    protected void txtRate_TextChanged(object sender, EventArgs e)
    {
        txtAmount.Text = Convert.ToString((Convert.ToInt32(txtQty.Text.Trim())) * (Convert.ToInt32(txtRate.Text.Trim())));
    }


      
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataTable dt = (DataTable)ViewState["CurrentData"];
        GridView1.DataSource = dt;
        string SR_NO = GridView1.SelectedDataKey.Value.ToString();
        GridViewRow row = GridView1.SelectedRow;
        GridView1.EditIndex = GridView1.SelectedIndex;
        if (SR_NO != "0")
        {
            if (dt.Rows.Count > 0)
            {
                txtSrno.Text = dt.Rows[GridView1.EditIndex]["SR_NO"].ToString().Trim();
                ddlstItem.SelectedItem.Text = dt.Rows[GridView1.EditIndex]["Item"].ToString().Trim();
                txtQty.Text = dt.Rows[GridView1.EditIndex]["Qty"].ToString().Trim();
                txtRate.Text = dt.Rows[GridView1.EditIndex]["Rate"].ToString().Trim();
                txtAmount.Text = dt.Rows[GridView1.EditIndex]["Amount"].ToString().Trim();
                GridView1.EditIndex = -1;
            }
            btnSave.Visible = false;
            btnUpdate.Visible = true;
            btnCancel.Visible = true;
            txtSrno.Enabled = true;
            ddlstItem.SelectedItem.Enabled = true;
            txtQty.Enabled = true;
            txtRate.Enabled = true;
            txtAmount.Enabled = true;
        }
    }
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        DataTable dt = (DataTable)ViewState["CurrentData"];
        dt.AcceptChanges();
        GridView1.DataSource = dt;
        string SR_NO = GridView1.SelectedDataKey.Value.ToString();
        for (int i = 0; i <= dt.Rows.Count - 1; i++)
        {
            if (dt.Rows[i].RowState != DataRowState.Deleted)
            { 
                if(dt.Rows[i]["SR_NO"].ToString()==SR_NO)
                {
                    dt.Rows[i]["Item"] = ddlstItem.SelectedItem.Text;
                    dt.Rows[i]["Qty"] = txtQty.Text;
                    dt.Rows[i]["Rate"] = txtRate.Text;
                    dt.Rows[i]["Amount"] = txtAmount.Text;

                    GridView1.EditIndex = -1;
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
            }
        }
        GridView1.DataSource = dt;
        ViewState["CurrentData"] = dt;
        GridView1.DataBind();
        txtSrno.Text = string.Empty;
        ddlstItem.SelectedIndex = -1;
        txtQty.Text = string.Empty;
        txtRate.Text = string.Empty;

        txtAmount.Text = string.Empty;
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        txtSrno.Text = string.Empty;
        ddlstItem.SelectedIndex = -1;
        //ddlstItem.SelectedIndex = -1;
        txtQty.Text = string.Empty;
        txtRate.Text = string.Empty;

        txtAmount.Text = string.Empty;
    }
    
    
}
Posted
Updated 8-Jul-13 3:04am
v3
Comments
Thanks7872 8-Jul-13 8:59am    
Dont post whole pages here. It will lead to very poor response because no one would like to go through those lengthy codes. Post smallest possible code block which you suspect to have problems.

You can use DataTable.Compute Method to get total amount and use below method to add total row in GridView. Below is parameter description \

gridView: gridview instance
cellIndx : index of column on which you want total
total : total amount.

private void AddTotalRow(GridView gridView, int cellIndx, decimal total)
        {
            GridViewRow rw = new GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal);
            TableCell rowCell;
            int count = 0;

            for (int i = 0; i < gridView.Columns.Count; i++)
            {
                rowCell = new TableCell();
                rowCell.Text = "";
                rowCell.Style.Add("border-top", "2px solid black");

                if (cellIndx == i)
                {
                    rowCell.Text = String.Format("{0:C}", total);
                    rowCell.HorizontalAlign = HorizontalAlign.Right;
                }
                rw.Cells.Add(rowCell);
            }
            gridView.Controls[0].Controls.Add(rw);
        }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900