Click here to Skip to main content
16,014,677 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello sir,

I am entering some data to gridview with 5 textboxes by submit button. For this I created a datatable and I added those columns and rows. But whenever I am entering in second row, it is overriding the first row and not displaying two rows.
My requirement is that I want to enter 100 rows and display them in gridview. To do this what do I do? If anybody knows, please help me. Somebody please give me a proper solution.
How can I write a for loop to create new row every time.
My code is below.
Thank you.
C#
public partial class PurchaseOrder1 : System.Web.UI.Page
{
    DataTable dt = new DataTable();
    protected void GVProductOrderBind()
    {
        GVProductOrder.DataSource = dt;
        GVProductOrder.DataBind();
        Session["GVTable"] = dt;
        
    }
    protected void InsertToGrid()
    {
        DataRow drNew = dt.NewRow();
        drNew["ItemCode"] = TxtItemCode.Text;
        drNew["ItemName"] = TxtItemDescription.Text;
        drNew["EanCode"] = TxtEanCode.Text;
        drNew["Cost"] = TxtCP.Text;
        drNew["MRP"] = TxtMRP.Text;
        drNew["SP"] = TxtSP.Text;
        drNew["MBQ"] = TxtACP.Text;
        drNew["Quantity"] = TxtQty.Text;
        drNew["FreeQty"] = TxtFreeQty.Text;
        drNew["FixedDisc"] = TxtDiscPercentage.Text;
        drNew["Tax"] = TxtTaxPercentage.Text;
        drNew["Value"] = TxtValue.Text;
        drNew["OnOrder"] = TxtOnOrder.Text;
        drNew["Remarks"] = TxtQOH.Text;
        drNew["Type"] = TxtUOP.Text;
        dt.Rows.Add(drNew);
        GVProductOrderBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
              //dt.Columns.Add("ItemCode", System.Type.GetType("System.String"));
                DataRow dr = dt.NewRow();
                dt.Columns.Add("ItemCode");
                dt.Columns.Add("ItemName");
                dt.Columns.Add("EanCode");
                dt.Columns.Add("Cost");
                dt.Columns.Add("MRP");
                dt.Columns.Add("SP");
                dt.Columns.Add("MBQ");
                dt.Columns.Add("Quantity");
                dt.Columns.Add("FreeQty");
                dt.Columns.Add("FixedDisc");
                dt.Columns.Add("Tax");
                dt.Columns.Add("Value");
                dt.Columns.Add("OnOrder");
                dt.Columns.Add("Remarks");
                dt.Columns.Add("Type");

                dt.Rows.Add(dr);
                GVProductOrderBind();
           
        }
        catch (Exception ex)
        {
            throw ex;
        }       
       
    }
    protected void BtnClose_Click(object sender, EventArgs e)
    {
        Response .Redirect ("~/Welcome.aspx");
    }
    protected void BtnSave_Click(object sender, EventArgs e)
    {
        try
        {       
          DataTable dt = (DataTable)Session["GVTable"];
          InsertToGrid();
        }
        catch (Exception ex)
        {
          throw ex;
        }
    }
}
Posted
Updated 27-Nov-10 0:14am
v3
Comments
JF2015 27-Nov-10 6:00am    
Edited to fix formatting and spelling.
Ankur\m/ 27-Nov-10 6:35am    
Did I not tell you to use comments to discuss with the answerer. Adding an answer doesn't notify the answerer.

1 solution

On page Load Event You Added Wrong Code..
Do Following
C#
Datatable dt=new Datatable();


Remove these,
C#
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);


ther seem all right Try IT
 
Share this answer
 
v2
Comments
Ankur\m/ 27-Nov-10 6:31am    
[moved from answer]
sathish.jampala wrote:
thankyou sir. thanks for quick reply.
my requirement is only one row is adding to the gridview if enter second row it is overriding first row.
how can i create second row sir. plz let me know sir.
thanking you.

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