Web Forms :: Save Values Of Dynamic Web User Controls?
Mar 15, 2010
I have a self-made webuser control named UCLabeltextBox with 1 label and 1 textbox. When pressing the save button the page is refreshed and the value of the textbox is erased. Anyone a solution to this? Here's my code:
i have d design for dynamic textbox control ..but now i want to save the data values from the dynamic textbox...refer my following codings for design and based on that suggest me the codings for saving the data...
I'm having trouble with inserting the (Multiple)dynamically created FileUpload Files in database, since i'm using javascript to generate the function dynamically.
I have an editable gridview with blank cells. User enters some numeric data in cells and also user can clicks a button to add new row to gridview. My problem is that, as soon as button click event is fired, the page refreshes & the gridview becomes empty. Can anybody tell me, how can I save values in gridview until the user saves all changes to the server in the end
I work with dynamic webuser controls. Depending on a choice in a dropdownlist, I load the webuser controls from my database. In the Page_Load event, I load the controls. When the controls are loaded and a button is pressed, the values that are filled in,in the webuser controls' textboxes, must be saved in the database. when I click the button, the values of the textboxes are empty again. Here's my code:
I had successfully created a functionality where I can dynamically add rows and columns to a asp table by creating/re-creating controls on every page load.
I have 2 buttons - Add rows and Add columns that, basically according to a asp.,net page life cycle, occur in the following order and work perfectly fine.
Page load is fired and controls along with their viewstate are recreated. In Add row button click event - I just create a new table row and add controls to each cell dynamically.
Same thing with Add column, Delete Row and Delete Column button click events.
However, now I added a Dropdown which when its index is changed needs to retrieve values from the database and create controls based on those values and then also bind the Db values.
But it doesn't work correctly since the asp.net page cycle cannot capture the dropdown's selected value in page_load as the page_load fired first and then the selectedindexchanged event is fired later, the controls are not created.
I don't know how to handle this scenario and incorporate it into my existing code.
I have a gridview and users would select some records and would click on the submit button and i will be saving those records into database using a stored proc.... now .... just below the gridview and above the submit button there are few checkboxes by default they wud be checked. How would i save the selected values and the checked boxes in database i wrote the stored proc for the gridview but how would i save the checked checkboxes into the same table.
For i As Integer = 0 To gvSelectScreen.Rows.Count - 1 Dim chkTemp As CheckBox = TryCast(gvSelectScreen.Rows(i).FindControl("cbStatus"), CheckBox) If chkTemp.Checked Then ContractNumber = gvSelectScreen.Rows(i).Cells(0).Text ClientProgramNumber = gvSelectScreen.Rows(i).Cells(1).Text ClientProgramName = gvSelectScreen.Rows(i).Cells(2).Text StartDate = CType(gvSelectScreen.Rows(i).FindControl("txtStartDate"), TextBox).Text EndDate = gvSelectScreen.Rows(i).Cells(5).Text Dim connStr As String = ConfigurationManager.ConnectionStrings("MainConnectionString").ConnectionString Dim myCon As New SqlConnection(connStr) Dim cmd As New SqlCommand("usp_ParametersFromGrid") Dim dt As New DataTable cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@ContractNumber", SqlDbType.VarChar, 22).Value = ContractNumber.ToString() cmd.Parameters.Add("@ClientProgramNumber", SqlDbType.VarChar, 22).Value = ClientProgramNumber.ToString() cmd.Parameters.Add("@ClientProgramName", SqlDbType.VarChar, 100).Value = ClientProgramName.ToString() cmd.Parameters.Add("@StartDate", SqlDbType.VarChar, 20).Value = StartDate.ToString() cmd.Parameters.Add("@EndDate", SqlDbType.VarChar, 20).Value = EndDate.ToString() cmd.Parameters.Add("@RequestID", SqlDbType.VarChar, 50).Value = RequestID.ToString() cmd.Connection = myCon myCon.Open() cmd.ExecuteNonQuery() myCon.Close() End If
Now above the submit button as i said, there are few checkboxes and they are checked by default...how would i save the selected item (in the gridview and the checked checkbox values in the same row in the database(sql server)
i have read your article on aspsnippets.com. Multilingual Website and i have implemented that i works good .but there is new problem arrising. suppose my default language is english set in internet option so the whenever website reloaded or redirected then all content will show in english language but
when i changed it to hindi then current webpage converted to hindi but after that if i pressed any button on current page or i redirected to any other link of particular website then again hindi is converted to english.
I have a user control (ascx file) that contains an interface for users to change the data retrieved from the db. So, I am displaying data and most of this data can be edited by the user. When the user enters text into a textbox, and clicks "Save Changes", the value they typed in is lost and not persisted to the database. I realize now this is because the SaveChanges button does a postback, and the user control gets reloaded with its original valuesbefore the code within my SaveChanges button gets executed. I'm not sure if there are properties I need to set to save the input data, or if I need to write my own code to do it. What is the generally accepted method to do this? (Also, all of the controls in the ascx file are wrapped in an Update Panel.)
I have one application form in which i want to store image of student with enrollment no and when i submit i want to store that image and take that image on another page on submit button two things should be doneÂ
1. storing the image and enrollment no 2. passing enrollment no and image to another page
I am dealing with dynamic fields in a for loop and now I need to retrieve the values that are being typed in the dynamic fields, any idea how can I do that? 2)also when I click the submit button, upon postback, the dynamic fields have gone missing, have been trying to slove that, but i did not, anyone knows how to deal with this? kinda urgent :x
3) and How do you compare the 2 dynamic fields? For eg: Im comparing the tbSch[i] to tbSch[i], so that the dates cannot be the same, am using a compare validator, but it throws me error that im comparing the same fields :) even though i change to ("tbSch" + i) for both, sorry Will provide my code snippet as follow :D tbNum is a textbox where user enter numbers and click generate
protected void btnGen_Click(object sender, EventArgs e) { for (int i = 0; i < Convert.ToInt32(tbNum.Text); i++) { // label and textbox needed Label lblSch = new Label(); TextBox tbSch = new TextBox(); Label lblWsGrp = new Label(); DropDownList ddlWsGrp = new DropDownList(); CompareValidator cvSame = new CompareValidator(); cvSame.ID = "cvSame" + i; cvSame.ErrorMessage = "Date cannot be the same"; cvSame.Operator = ValidationCompareOperator.NotEqual; cvSame.Type = ValidationDataType.Date; cvSame.Display = ValidatorDisplay.Dynamic; cvSame.EnableViewState = true; cvSame.ControlToValidate = (tbSch.ID);<<<<< what should be the value in here? cvSame.ControlToCompare = (tbSch.ID);<<<<<<<<<< and here? //schdule date lblSch.ID = "lblSch" + i; lblSch.Text = "Session Date : "; lblSch.EnableViewState = true; tbSch.ID = "tbSch" + i; tbSch.Width = 210; tbSch.Height = 27; tbSch.EnableViewState = true; //workshop grp lblWsGrp.ID = "lblwsgrp" + i; lblWsGrp.Text = "Workshop Group : "; lblWsGrp.EnableViewState = true; ddlWsGrp.ID = "ddlWsGrp" + i; ddlWsGrp.Height = 27; ddlWsGrp.Width = 210; ddlWsGrp.EnableViewState = true; ddlWsGrp.Items.Add("1"); ddlWsGrp.Items.Add("2"); //table to store data TableRow trow = new TableRow(); TableRow trow2 = new TableRow(); //row1 TableCell tc1 = new TableCell(); TableCell tc2 = new TableCell(); TableCell tc3 = new TableCell(); TableCell tc4 = new TableCell(); //row2 TableCell tc5 = new TableCell(); TableCell tc6 = new TableCell(); TableCell tc7 = new TableCell(); TableCell tc8 = new TableCell(); TableCelltc9 = new TableCell(); tc1.Controls.Add(lblSch); tc2.Controls.Add(tbSch); tc3.Controls.Add(lblWsGrp); tc4.Controls.Add(ddlWsGrp); tc5.Controls.Add(space); tc6.Controls.Add(CeSess); tc7.Controls.Add(space); tc8.Controls.Add(space); tc9.Controls.Add(cvSame) trow.Cells.Add(tc1); trow.Cells.Add(tc2); trow.Cells.Add(tc3); trow.Cells.Add(tc4); trow2.Cells.Add(tc5); trow2.Cells.Add(tc6); trow2.Cells.Add(tc7); trow2.Cells.Add(tc8); trow2.Cells.Add(t9); this.table3.Rows.Add(trow); this.table3.Rows.Add(trow2); } }
Nowadays having activity logs of the system is needed for history and if someone who is trying to mess your site, it is easily to define who is it and when it happen. And even Facebook have it.
how to load Gridview HeaderText values from resource (.resx) files.I want to display headertext values for Gridview based on two different application dynamically.
I'm new to web dev and c# so please bare with me. I am trying to create a dynamic gridview in a web form for users to to answer questions with (code below).
The dificulty im having is that i am nesting a dropdwonlist in the gridview and want to be able to dynamically set the list values based on parameters (of the row they are on). These values are in the main dataset for the gridview as each row represents a questionid and question text and then a ddl for the criteria...
I just don't know how to set the values for the dropdown all the code so far is below... just need to be able to populate the dropdowns with the relevant values.
I have created a stored proc to return the different criteria based on the questionid and questionGroupid which is the dataset that populates the other fields in the gridview: dbo.usp_QuestionCriteria @QuestionGroupId, @QuestionId
I have added this as a tableadapter called criteriaTableAdapter in a xsd file as well using the wizard... not sure if this is the right option though or just use the same method as i have for the other stored procedure as in the code below:
[CODE
]using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Sql"].ConnectionString); con.Open(); SqlCommand com = new SqlCommand("usp_QuestionGroupDS", con); com.CommandType = CommandType.StoredProcedure; SqlDataAdapter ada = new SqlDataAdapter(com); DataSet ds = new DataSet(); ada.Fill(ds); for (int i = 0; i < ds.Tables.Count; i++) { if (ds.Tables[i].Rows.Count > 0) { GridView gvDynamicQuestion = new GridView(); gvDynamicQuestion.Width = Unit.Pixel(700); gvDynamicQuestion.BorderWidth = Unit.Pixel(0); gvDynamicQuestion.Caption = "<div id="nifty" class="QuestionGroup"> <b class="rtop"><b class="r1"></b><b class="r2"></b><b class="r3"></b><b class="r4"></b></b>" + ds.Tables[i].Rows[0]["Category"].ToString() + " Questions<b class="rbottom"><b class="r4"></b><b class="r3"></b><b class="r2"></b><b class="r1"></b></b></div>"; gvDynamicQuestion.AutoGenerateColumns = false; gvDynamicQuestion.ShowFooter = true; TemplateField tf = null; tf = new TemplateField(); tf.HeaderTemplate = new DynamicGridViewTextTemplate("QuestionId", DataControlRowType.Header); tf.ItemTemplate = new DynamicGridViewTextTemplate("QuestionId", DataControlRowType.DataRow); tf.FooterTemplate = new DynamicGridViewTextTemplate(DataControlRowType.Footer, ds.Tables[i].Rows.Count); gvDynamicQuestion.Columns.Add(tf); tf = new TemplateField(); tf.HeaderTemplate = new DynamicGridViewTextTemplate("Question", DataControlRowType.Header); tf.ItemTemplate = new DynamicGridViewTextTemplate("Question", DataControlRowType.DataRow); gvDynamicQuestion.Columns.Add(tf); tf = new TemplateField(); tf.HeaderText = "Criteria"; tf.HeaderTemplate = new DynamicGridViewTextTemplate("Criteria", DataControlRowType.Header); tf.ItemTemplate = new DynamicGridViewDDLTemplate(); gvDynamicQuestion.Columns.Add(tf); ////tf = new TemplateField(); ////tf.HeaderText = "Criteria"; ////tf.ItemTemplate = new DynamicGridViewDDLTemplate(); ////gvDynamicQuestion.Columns.Add(tf); gvDynamicQuestion.DataSource = ds.Tables[i]; gvDynamicQuestion.DataBind(); phDynamicGridHolder.Controls.Add(gvDynamicQuestion); } } } protected void DynamicGrid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Footer) { // } } } public class DynamicGridViewTextTemplate : ITemplate { string _ColName; DataControlRowType _rowType; int _Count; public DynamicGridViewTextTemplate(string ColName, DataControlRowType RowType) { _ColName = ColName; _rowType = RowType; } public DynamicGridViewTextTemplate(DataControlRowType RowType, int QuestionCount) { _rowType = RowType; _Count = QuestionCount; } public void InstantiateIn(System.Web.UI.Control container) { switch (_rowType) { case DataControlRowType.Header: Literal lc = new Literal(); lc.Text = "<b>" + _ColName + "</b>"; container.Controls.Add(lc); break; case DataControlRowType.DataRow: Label lbl = new Label(); lbl.DataBinding += new EventHandler(this.lbl_DataBind); container.Controls.Add(lbl); break; case DataControlRowType.Footer: Literal flc = new Literal(); flc.Text = "<b>Total No of Questions:" + _Count + "</b>"; container.Controls.Add(flc); break; default: break; } } private void lbl_DataBind(Object sender, EventArgs e) { Label lbl = (Label)sender; GridViewRow row = (GridViewRow)lbl.NamingContainer; lbl.Text =DataBinder.Eval(row.DataItem, _ColName).ToString(); } } public class DynamicGridViewDDLTemplate : ITemplate { // Implementation of ITemplate public void InstantiateIn(System.Web.UI.Control container) { // Create a DDL DropDownList ddl = new DropDownList(); //Attach method to delegate ddl.DataBinding += new System.EventHandler(this.ddl_DataBind); container.Controls.Add(ddl); } //Method that responds to the DataBinding event private void ddl_DataBind(object sender, System.EventArgs e) { //DropDownList ddl = (DropDownList)sender; //DataGridItem container = (DataGridItem)ddl.NamingContainer; //ddl.Data.Checked = [Data binding expression]; } }
Today i'm using crystal reports to create parameterized forms and save them into PDF, but isn't there other alternatives?What i want to do? Well, simply have a form with information "placeholders" (that's how i'm using crystal) ... then in code i set the placeholder data to be binded ... Save as PDF and voila...But crystal is a pain to maintain and the fields don't grow automatically.
The first and third view are simple now.The second view contains a user control AgreementDetailUC, which dynamically loads many other user controls onto several dynamically created tabs, as show below
When <Next> and <Previous> button is clicked, it take several seconds to show the second view. Page_Init is run very fast, it seems the time is spent on rendering the page.
My questions are:
1. How can the performance be improved?
2. How to change the cursor to hour glass when a button is clicked and change it back when the new view is shown (I can set it to hour glass when a button is clicked, but don't know how to set it back to normal).
I have a form with several DropDownlists and TextBoxes, Each dropdownlist depends on the selection of the previouse one.. and there is a submit button. Once the user clicks on it, information entered by the user is displayed in a GridView and saved as well in the database. The GridView holdes information from two tables I used joining) , but once I click on the Submit button I receive this error: Arithmetic overflow error converting varchar to data type numeric. The statement has been terminated. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Arithmetic overflow error converting varchar to data type numeric. The statement has been terminated. Source Error:
[Code]....
Imports System.Data.SqlClient Imports System.Web.Configuration Partial Class Members_MembersCalculator Inherits System.Web.UI.Page Protected Sub CalculateButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CalculateButton.Click Dim objConnection As SqlConnection Dim objDataCommand As SqlCommand Dim c_manu, c_model, c_date As String Dim sSQL As String Dim ConnectionString As String Dim c_factor As Double Dim c_result As Double Dim c_milage As Double Dim c_id As Integer Dim c_year As Integer c_manu = ManDropDownList.Text c_year = YearDropDownList.Text c_model = ModelDropDownList.Text c_milage = MilageTextBox.Text c_factor = FactorDropDownList.Text c_id = CarIDDropDownList.Text c_date = CarDateTextBox.Text c_result = c_factor * c_milage ConnectionString = WebConfigurationManager.ConnectionStrings("Carbon_free_ConnectionString").ConnectionString objConnection = New SqlConnection(ConnectionString) objConnection.Open() sSQL = "Insert into car (Manufacture, year, Model, car_factor)" & _ "values('" & c_manu & " ', ' " & c_year & " ',' " & c_model & " ', ' " & c_factor & " ')" objDataCommand = New SqlCommand(sSQL, objConnection) objDataCommand.ExecuteNonQuery() objConnection.Close() objConnection = New SqlConnection(ConnectionString) objConnection.Open() sSQL = "Insert into car_Result (car_id, car_Result_Date, Car_result)" & _ "values('" & c_id & " ', ' " & c_date & " ',' " & c_result & " ')" objDataCommand = New SqlCommand(sSQL, objConnection) objDataCommand.ExecuteNonQuery() objConnection.Close() msgLabel.Text = "Your records have been calculated successfuly, Thank you." 'CarDateTextBox.Text = "" 'MilageTextBox.Text = "" CarGridSqlDataSource.DataBind() CarGridView.DataBind() End Sub End Class
I m getting Problem in Tab Index Setting of Dynamic Created Controls. There are 6 Drop down dynamic created and also Two user controls which contains text boxes. There are also Static Controls on a Page. How i set tab index for all controls. I have try to give from code behind using TabIndex property But it's not working and Tab order get destory.
i have a page where i have a search area for users and a blank table. When a user performs a searcg,im creating in the cs the rows for the table and adding in the cells textboxes with values from DB. The textboxes ID´s are also being retrieved from the DB. Then, the user can change values from the textboxes. I also have an asp button that´s supposed to save the changes BUT i cant manage to persist the ids and last values between postback. Ive tried something ClientScript.RegisterArrayDeclaration but the array comes up empty. Then i used a hiddenfield but does the same trick.
what am i doing wrong?I add the hiddenfield,i try to add all the controls ids to an array but seems impossible,and there is no way i am getting the last values in another array. Im loosing everything between postbacks, but if i manage to save these ids and values, ill re-make the table in a sec.