2012-10-13 15 views
5

'a tıklayın. Verileri metin kutularından almak istiyorum ve bu butona tıklayarak o verilerin GridView'a eklenmesini istiyorum. Her tıklamada yeni bir satır oluşturulmalı ve eski satır kaldırılmamalıdır. Yeni verilere her girdiğimde ve butonuna bastığımda eski satırım silinir ve yerine yeni satır kaydedilir. Tekrar tablo sütunları oluşturmak postback her zaman gridVIEWData(); arayarak Bunun nedeniTextbox'lardan GridView'a veri eklemek için butona tıklayın ASP.NET

DataTable dt1 = new DataTable(); 
bool flag = false; 

private void gridVIEWData() 
{ 
    dt1.Columns.Add("pName", typeof(string)); 
    dt1.Columns.Add("pCategory", typeof(string)); 
    dt1.Columns.Add("price", typeof(string)); 
    dt1.Columns.Add("pQuantity", typeof(string)); 
    dt1.Columns.Add("totalPrice", typeof(string)); 
} 
protected void Button3_Click(object sender, EventArgs e) 
{ 
    if (!flag) 
    { 
     gridVIEWData(); 
     flag = true; 
     Int32 total = Convert.ToInt32(txt_quantity.Text) * Convert.ToInt32(txt_price.Text); 
     DataRow dr = dt1.NewRow(); 
     dr["pName"] = DropDownList2.SelectedItem; 
     dr["pCategory"] = DropDownList1.SelectedItem; 
     dr["price"] = txt_price.Text; 
     dr["pQuantity"] = txt_quantity.Text; 
     dr["totalPrice"] = total; 
     dt1.Rows.Add(dr); 

     GridView1.DataSource = dt1; 
     GridView1.DataBind(); 
    } 
    else if (!IsPostBack) 
    { 
     Int32 total = Convert.ToInt32(txt_quantity.Text) * Convert.ToInt32(txt_price.Text); 
     DataRow dr = dt1.NewRow(); 
     dr["pName"] = DropDownList2.SelectedItem; 
     dr["pCategory"] = DropDownList1.SelectedItem; 
     dr["price"] = txt_price.Text; 
     dr["pQuantity"] = txt_quantity.Text; 
     dr["totalPrice"] = total; 
     dt1.Rows.Add(dr); 

     GridView1.DataSource = dt1; 
     GridView1.DataBind(); 
    } 
} 
+0

'Page_Load' içinde ne olur? Düğmelerinizi yeniden adlandırmayı düşünün. Button3'ün amacı belli değil. –

cevap

2

eski veriler kaldırılır deneyin. Eski verileri veri kaynağında tutmanız gerekir; Genellikle dosya veri tabanı gibi verileri saklamak için kalıcı bir ortama sahibiz.

Anlayışınız için veri oturumunu Oturumda saklayacağım, ancak genellikle uygulama yapılmayacak, veritabanında veya istediğiniz ortamı istediğinizde depolamalısınız.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     gridVIEWData(); 
     GridView1.DataSource = dt1; 
     GridView1.DataBind(); 
    } 
} 

private void gridVIEWData() { 
    dt1.Columns.Add("pName", typeof(string)); 
    dt1.Columns.Add("pCategory", typeof(string)); 
    dt1.Columns.Add("price", typeof(string)); 
    dt1.Columns.Add("pQuantity", typeof(string)); 
    dt1.Columns.Add("totalPrice", typeof(string)); 
    Session["dtInSession"] = dt1;  //Saving Datatable To Session 
} 


protected void Button3_Click(object sender, EventArgs e) 
{ 
     if(Session["dtInSession"] != null) 
      dt1 = (DataTable)Session["dtInSession"]; //Getting datatable from session 

     Int32 total = Convert.ToInt32(txt_quantity.Text) * Convert.ToInt32(txt_price.Text); 
     DataRow dr = dt1.NewRow(); 
     dr["pName"] = DropDownList2.SelectedItem; 
     dr["pCategory"] = DropDownList1.SelectedItem; 
     dr["price"] = txt_price.Text; 
     dr["pQuantity"] = txt_quantity.Text; 
     dr["totalPrice"] = total; 
     dt1.Rows.Add(dr); 

     Session["dtInSession"] = dt1;  //Saving Datatable To Session 
     GridView1.DataSource = dt1; 
     GridView1.DataBind(); 

    } 
} 
+0

thanx alot Adil şimdi onun çalışma. takdir .. url –

+0

Sizi bekliyoruz, ancak oturum oturumları hakkında bu küçük bir anlam ifade etmiyor http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx – Adil

+0

Datatable'ı oturumda saklamanın iyi bir fikir olduğunu sanmıyorum. Http://stackoverflow.com/questions/12811932/using-session-to-store-datatable –

1

: İşte benim kodudur. Eğer yeni verilerle bağlamak olarak

bu

DataTable dt1 = new DataTable(); 

private void gridVIEWData() { 
    dt1.Columns.Add("pName", typeof(string)); 
    dt1.Columns.Add("pCategory", typeof(string)); 
    dt1.Columns.Add("price", typeof(string)); 
    dt1.Columns.Add("pQuantity", typeof(string)); 
    dt1.Columns.Add("totalPrice", typeof(string)); 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     gridVIEWData(); 
     GridView1.DataSource = dt1; 
     GridView1.DataBind(); 
     Session["dt1"]=dt1; 
    } 
} 

protected void Button3_Click(object sender, EventArgs e) 
{ 
    if(Session["dt1"]!=null) dt1 = (DataTable) Session["dt1"]; 
    Int32 total = Convert.ToInt32(txt_quantity.Text) * Convert.ToInt32(txt_price.Text); 
    DataRow dr = dt1.NewRow(); 
    dr["pName"] = DropDownList2.SelectedItem.Text; 
    dr["pCategory"] = DropDownList1.SelectedItem.Text; 
    dr["price"] = txt_price.Text; 
    dr["pQuantity"] = txt_quantity.Text; 
    dr["totalPrice"] = total.ToString(); 
    dt1.Rows.Add(dr); 

    GridView1.DataSource = dt1; 
    GridView1.DataBind(); 
} 
+0

kodumda düzeltebilirsiniz. ya da ben onu uyandırıyorum. –

+0

şimdi '' sütunu '' hatası alıyorum tabloya ait değil ... :( –

+0

thanx alot @jams ... sorun çözüldü ama ben cevap verdim ve yardım apreciate ... –

İlgili konular