how to add row with checkboxes inside in table server control using c#
-
Well ShaikhAffi, I have not tried anything like this but quickly I can give you one idea (there are definitely other ways too but right now I can give you this which will definitely work). keep a hidden field or session variable, every time user clicks the button increase that field by 1 (on the server side not on the client) now in page load do this:
if(!IsPostBack) preserveControls() protected void preserveControls() { int noOfControls = (hiddenfield.Value.Length > 0) ? (int)hiddenfield.Value : 0; if(noOfControls > 0) for(int i=0; i < noOfControls; i++) { // code to add your controls } }
and in button ClickEvent add the control and increment the hiddenfieldValue by 1-----
Well Thank u very much for ur reply bt i this solution wont b suitable for my prob coz in each row i have atleast 5 textboxes so it will make the problem complecated what do u think
-
Well Thank u very much for ur reply bt i this solution wont b suitable for my prob coz in each row i have atleast 5 textboxes so it will make the problem complecated what do u think
here is the sample page for exactly what you want: aspx page (I have added only one template column with text box, but you can add as many as you want): code behind file: protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (Request.Form["hf"] == "true") addGVRow(); hf.Value = string.Empty; } private void addGVRow() { DataTable dt = (DataTable)Session["dt"]; int counter = 0; if (dt == null) { dt = new DataTable(); dt.Columns.Add("seq"); } else counter = dt.Rows.Count; DataRow dr = dt.NewRow(); dr[0] = counter + 1; dt.Rows.Add(dr); gv.DataSource = dt; gv.DataBind(); Session["dt"] = dt; } protected void gvRowDataBound(object sender, GridViewRowEventArgs e) { // hide the last cell (sequence) e.Row.Cells[e.Row.Cells.Count - 1].Visible = false; } I am assuming that first time the page will be blank with add button only. -----
-
here is the sample page for exactly what you want: aspx page (I have added only one template column with text box, but you can add as many as you want): code behind file: protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (Request.Form["hf"] == "true") addGVRow(); hf.Value = string.Empty; } private void addGVRow() { DataTable dt = (DataTable)Session["dt"]; int counter = 0; if (dt == null) { dt = new DataTable(); dt.Columns.Add("seq"); } else counter = dt.Rows.Count; DataRow dr = dt.NewRow(); dr[0] = counter + 1; dt.Rows.Add(dr); gv.DataSource = dt; gv.DataBind(); Session["dt"] = dt; } protected void gvRowDataBound(object sender, GridViewRowEventArgs e) { // hide the last cell (sequence) e.Row.Cells[e.Row.Cells.Count - 1].Visible = false; } I am assuming that first time the page will be blank with add button only. -----
Actual SA Bhati i need to add row in table server control not in datagrid i nedd to add row in existing table the row shud contain atleas 4 to 5 textboxes hope u understood well thank u very much for the help
-
Actual SA Bhati i need to add row in table server control not in datagrid i nedd to add row in existing table the row shud contain atleas 4 to 5 textboxes hope u understood well thank u very much for the help
-
tell me briefly what your are trying to achieve? I mean what is the resulting output for the user? and and what you want from the user?
-----
well im working on an application for my father's buisness he has whole sale shop so whn a customer comes he may purchase items obviously he can purchase more than one time so im developing cash memo in tht cash memo ther are four textboxes for the itemName quantity saleprice and total and there is one button name addMoreItem so wht i want when user clicks this button same row of four textboxes shud b added every time user clicks row with the textboxes shud be added.after submitting the form whole data has to be saved in database the problem as i already told u is im unable to dynamically add row in table. hope u understand
-
well im working on an application for my father's buisness he has whole sale shop so whn a customer comes he may purchase items obviously he can purchase more than one time so im developing cash memo in tht cash memo ther are four textboxes for the itemName quantity saleprice and total and there is one button name addMoreItem so wht i want when user clicks this button same row of four textboxes shud b added every time user clicks row with the textboxes shud be added.after submitting the form whole data has to be saved in database the problem as i already told u is im unable to dynamically add row in table. hope u understand
-
well the solution/sample page I gave you for gridview does exactly the same thing and I'll suggest to use gridview instead of table server control. But, if you want to use table control then you can try the same logic for that.
-----
well SA Bhatti i tried ur code the prob is u have implemented the session table tht i dont want coz if u will use session table then probably when u come back to tht page it will insert the last no: of rows
-
well the solution/sample page I gave you for gridview does exactly the same thing and I'll suggest to use gridview instead of table server control. But, if you want to use table control then you can try the same logic for that.
-----
on page load i just equals the session table to null now the problem is solved bt how can i access the each textbox in grid view well thank u very much i w8 for ur reply
-
on page load i just equals the session table to null now the problem is solved bt how can i access the each textbox in grid view well thank u very much i w8 for ur reply
In aspx page add save button like:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
in code behind file do this:protected void btnSave_Click(object sender, System.EventArgs e) { foreach (GridViewRow row in gv.Rows) { TextBox tb = (TextBox)row.FindControl("tb"); string valueTyped = tb.Text; } }
-----
-
In aspx page add save button like:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
in code behind file do this:protected void btnSave_Click(object sender, System.EventArgs e) { foreach (GridViewRow row in gv.Rows) { TextBox tb = (TextBox)row.FindControl("tb"); string valueTyped = tb.Text; } }
-----
thank u very much and wht if i want to display serial no as well and i can delete the row. i want delete button on each row so whenever i press it that row shud be deleted well i can add delete button but i dont know the logic any help will be greatly appreciated. thank
-
In aspx page add save button like:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
in code behind file do this:protected void btnSave_Click(object sender, System.EventArgs e) { foreach (GridViewRow row in gv.Rows) { TextBox tb = (TextBox)row.FindControl("tb"); string valueTyped = tb.Text; } }
-----
Salams ur code is giving problem when im using in page tht is using a master page sometimes it gives this error ystem.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 28: Line 29: Line 30: hf.Value = string.Empty; Line 31: Line 32: Source File: f:\erpSite\erp2\test.aspx.cs Line: 30 and onother time it gives this error System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 47: dr[0] = counter + 1; Line 48: dt.Rows.Add(dr); Line 49: gv.DataSource = dt; Line 50: gv.DataBind(); Line 51: Session["dt"] = dt; Source File: f:\erpSite\erp2\test.aspx.cs Line: 49
-
Salams ur code is giving problem when im using in page tht is using a master page sometimes it gives this error ystem.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 28: Line 29: Line 30: hf.Value = string.Empty; Line 31: Line 32: Source File: f:\erpSite\erp2\test.aspx.cs Line: 30 and onother time it gives this error System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 47: dr[0] = counter + 1; Line 48: dt.Rows.Add(dr); Line 49: gv.DataSource = dt; Line 50: gv.DataBind(); Line 51: Session["dt"] = dt; Source File: f:\erpSite\erp2\test.aspx.cs Line: 49
well, its not my code instead it is your logic that giving you the error. It seems that you are accessing the hidden field (hf) and gridview (gv) in test.aspx.cs but hf and gv are not declared in test.aspx. So check if you have declared them in this page. You should check you test.aspx page and then run in debug mode and see the cause of error. To show the sequence number on the page comment the code in rowdatabound that has row.cells[row.cells.count-1].visible = false. For deleting a row set allowdelete (you can check actual syntax in visual studio) to true and then in RowCommand delete that row from the gridview and from the datatable in session. (you can find the row based on the sequence number and delete it from the session).
-----
-
well, its not my code instead it is your logic that giving you the error. It seems that you are accessing the hidden field (hf) and gridview (gv) in test.aspx.cs but hf and gv are not declared in test.aspx. So check if you have declared them in this page. You should check you test.aspx page and then run in debug mode and see the cause of error. To show the sequence number on the page comment the code in rowdatabound that has row.cells[row.cells.count-1].visible = false. For deleting a row set allowdelete (you can check actual syntax in visual studio) to true and then in RowCommand delete that row from the gridview and from the datatable in session. (you can find the row based on the sequence number and delete it from the session).
-----
i have checked hf and gv already exist in the page it gives the same error i told u wht shud i do
-
well, its not my code instead it is your logic that giving you the error. It seems that you are accessing the hidden field (hf) and gridview (gv) in test.aspx.cs but hf and gv are not declared in test.aspx. So check if you have declared them in this page. You should check you test.aspx page and then run in debug mode and see the cause of error. To show the sequence number on the page comment the code in rowdatabound that has row.cells[row.cells.count-1].visible = false. For deleting a row set allowdelete (you can check actual syntax in visual studio) to true and then in RowCommand delete that row from the gridview and from the datatable in session. (you can find the row based on the sequence number and delete it from the session).
-----
the second problem is as i told u i have a textbox named item there is a button besides tht textbox on each row when i click tht button a pop up shud be open well i opened the pop through the javascript now i want to pass the client id of tht textbox i mean item to tht javascript function which is calling the pop.so plz help me out this problem is driving me crazy any help wud greatly be appreciated i will wait for ur reply u have solved my prob until now this is the last problem plz do me favour thank u very much
-
well, its not my code instead it is your logic that giving you the error. It seems that you are accessing the hidden field (hf) and gridview (gv) in test.aspx.cs but hf and gv are not declared in test.aspx. So check if you have declared them in this page. You should check you test.aspx page and then run in debug mode and see the cause of error. To show the sequence number on the page comment the code in rowdatabound that has row.cells[row.cells.count-1].visible = false. For deleting a row set allowdelete (you can check actual syntax in visual studio) to true and then in RowCommand delete that row from the gridview and from the datatable in session. (you can find the row based on the sequence number and delete it from the session).
-----
please help me out well i done all these things by my self now the only problem remains is when i reload or refresh my page automatically row is inserted i dont want this please reply