Web Forms :: Persist Dynamically Added User Controls Between Postbacks?
May 6, 2010
I have a C# web application that dynamically adds user controls to the default page for whatever "mode" the application is in. The problem is that it is not persisting these across postbacks. How do I persist these across postbacks and keep the content of the controls that are in the user control?
For instance, say I have a user control that creates a new tour record. The user clicks on the Tour item from the menu on the default page, it dynamically loads the tours user control. The user then fills out the form in the tours user control and clicks save. This is where the problem happens. When the postback occurs, the web application has no idea that the new tours user control was ever loaded. So, no save takes place because the Save button's click event never even gets fired.
View 11 Replies
Similar Messages:
Aug 5, 2010
[Code]....
I know that if I re-add the control during Page_Load, the posted values will be repopulated when the page is rendered; however, this is not the case when re-adding the control during the Click event and I need to add the control during an event handler.
View 1 Replies
Aug 19, 2010
I am trying to persist data in a dynamically populated ListBox in a user control. Here are the details
I have a user control which contains a a listBox and button. On Page_Load of user control I am populating the ListBox control with some values. On Click of button, I am trying to fetch the values which I have selected in ListBox. Though this seems very simple and straight forward I am unable to fetch values.
My Page_Load Function
void Page_Load(object sender, EventArgs e)
{
If(!IspostBack)
{
listBox.items.Add("Item1");
listBox.items.Add("item2");
listBox.items.Add("item3");
}
}
My Click Function
Protected Void Button1_Click(object sender, EventArgs e)
{
string strValue = listBox.SelectedValue
}
I have placed brake point at Page_Load and on click function, I am seeing that the moment the breakpoint hits Page_Load function (before If (!Ispostback)) , listBox.SelectedIndex is becoming -1.
One more thing here is, I am placing this user control in an SharePoint application page to be specific checkin.aspx page . ( I know this should not be done, but that is the requirement for me)
View 5 Replies
Apr 24, 2010
I have ONE <asp:Button ID="btnAddUC" runat="server" ......./> and ONE <asp:Table ID="tblUC" runat="server"...> on my page. User clicks on btnAddUC, user control is added to the page [user can add 'n' user controls to the page]. here I have no problem, adding user controls to the page on user clicks.
My user control has ONE <asp:DropDownList ID="ddlItems" runat="server" ......./> and ONE <asp:CheckBoxList ID="chkItems" runat="server"..../>. I am exposing "ddlItems" by public method, "chkItems" is not exposed. "chkItems" is binded on SelectedIndexChanged event of "ddlItems".
Execution scenario:
User adds user control to the page, select item from the "ddlItems" ( Note: "ddlItems" is exposed by public property ) , "chkItems" is populated ( using ddlItems.SelectedItem.Value ) . User checks some checkboxes in "chkItems" and then decide to add one more user control. When the second user control is added to the page, checkboxes in the first usercontrol lose their state and apeears unchecked (NOTE: user checked some checkboxes and then added another user control).
I want to put checked beckboxes index in session ( Before another control is added, which event I should use, because at LOAD event there is nothing).
I was able to restict SelectedIndexChanged event to only that user control whcih generated it (checking _EVENTTARGET)
View 9 Replies
Jan 30, 2010
I have a user control, which is added dynamically, but I have noticed that when it is on the page and viewing the source that none of the controls within have been given unique ids. How do I give my user control and the controls within unique ids in order that I can use them in my events?
View 5 Replies
Sep 27, 2011
I am trying figure out how I handle events in a dynamically added user control. Basically I can add user controls dynamically to my form (I am then storing them in an ArrayList in a Session variable that I use to reload them on my Page_Load). Each control has a button on it. However, whenever I click the button, the event never fires (code is never reached). I assume it has something to do with the control being dynamic, and when I click a button, it goes out of scope, and when I reload it something is lose in the event handling.
Here's my code for adding a user control:
Code:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim alContact As New ArrayList
If Not IsPostBack Then
' Dummy controls for testing
Dim oContact As New ASP.ContactControl
[Code] ....
View 5 Replies
Jul 20, 2010
how to make radiobuttons created using Html.RadioButton("id","value") maintain its checked state through postbacks?
View 6 Replies
Jan 21, 2011
I have a composite user control consisting of three standard table cells (a legend, an image with a tool tip, and a text field control). If I add these to a TableRow in my aspx page it works fine and produces legal HTML in my source. The below works fine ...
<tr><MyControl:dataField
ID="txtEmail"
DataType="Email"
runat="server"
/></tr>
However when I try to do the same programmatically (C#) the TableRow won't accept anything in its Controls collection that isn't a TableCell. I could make my control a nested table in its own right but I lose the alignment of my form items on the page with multiple controls, as each table aligns itself according to its contents. Is there anyway I can make the TableRow accept my control as collection of cells or do I need to do some casting or making my user control inherit some kind of TableCell attributes? I can also dynamically add my controls to a TableCell item which actually displays OK in IE but creates illegal HTML (<td><td></td><td> ... </td></td> - I assume this is illegal) in my resulting source. The code below DOES NOT work ...
[Code]....
View 4 Replies
Jan 13, 2011
In my base class:
[code]....
In my user control that inherits from BaseUsercontrol The ascx has:
<asp:Button id="btnTest" runat="server" OnClick="OnButtonClick" />
Why can't I use the hidden input variable this way?
View 1 Replies
Jun 30, 2010
I've got a custom ASP.Net web user control I've built; done this enough times before but this one is misbehaving and I can't spot why.
Where the calling page includes the user control directly in its markup, all is well and the control behaves as expected.
However if the page adds this particular control dynamically (to a placeholder in the master page, which is what's calling this whole thing) the elements within it stay firmly NULL - nothing from the user control gets written to the client at all, including static content within the user control.
View 3 Replies
Apr 26, 2010
I have a user control say SearchVendor.ascx which contains 4 buttons a gridview and another user control. I need to load the control dynamically actually as a modal pop up
I get this code
var uc = Page.LoadControl("~/blah/VendorProductSearch.ascx") as VPSearch;
uc.ShowVPSearch(true);
_tempPlaceHolder.Controls.Add(uc);
it works fine the control gets loaded properly but onclick of any button the second time the control disappears ?
I want the dynamically added control to remain until the user clicks on the cancel button
View 2 Replies
Jan 30, 2010
I have a GridView of thumbnail photos within an UpdatePanel, with clickable icons in each row which each load a User Control containing a small Google Map into the relevant row. The idea is that the user can geotag (by clicking on the map) any photo in the GridView.
In the map User Control, there is some Javascript initialising the map:
function initializeMap() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('Map'), {size: new
GSize(336, 200)});
// set the map controls, set the centre, etc.
}
}
Problem is: I don't know how to call the initializeMap() method. Because it's dynamically added to the page, any attempt to link it to the calling button by "onClientClick=initializeMap()" for example, gives a JS error, saying the method isn't defined.
I've tried
ClientScript.RegisterStartupScript(this.GetType(), "initializeMap", "<script type="text/javascript">alert('Here'); initializeMap();</script>");
but I don't think I'm on the right track with that one either.
View 1 Replies
Jan 16, 2010
I have recently added UrlRewriter.Net to my application. Because I was having problems with postbacks, I added the following to my Master Page:
[code]...
View 2 Replies
Mar 18, 2011
On a dashboard page I'm loading several controls dynamically; the controls always need to be loaded so there is no if (!Page.IsPostBack) code. The problem though is in that in the code-behind, we are using Request.Form.GetValues and a particular dropdown field's value is always null (presumably because the controls are being cleared and reloaded on a postback) and this is triggering an error later on in the page that expectes a value from this dropdown. I have to use Request.Form.GetValues because the page enables dynamically adding rows (each row containing 5+ HTML inputs) via Javascript.
If I check for postback, then the button event of the control does not fire at all but instead the dashboard page is reloaded, and no controls are loaded at all (i.e. the page is blank).
How do I get around this issue? I need to dynamically load the controls at all times, but I also need to retrieve the values via Request.Form.GetValues.
EDIT
Here's what the code looks like, roughly:
(Client-side HTML)
<table>
<tr>
<td align="center">
<select id="Class1" class="txtboxcomm" name="Class1" runat="server" />
<a href="javascript:classFinder('1')"> Look Up</a>
</td>
</tr>
</table>
<div id="action">
<asp:LinkButton ID="ibtnGetQuote" runat="server" OnClick="ibtnGetQuote_Click" CssClass="getQuote" AccessKey="G">Get Quote</asp:LinkButton>
</div>
(Server-side, in ibtnGetQuote_Click - this is actually a loop since user can append multiple rows; "i" is appended to the word "Class" to find the exact row)
IList<string> classes = this.GetFormValues("Class1");
// This will return null all the time...
private IList<string> GetFormValues(string clientID)
{
String[] values;
values = Request.Form.GetValues(clientID);
if (values == null)
{
Control ctl = FindControl(clientID); // uses built-in FindControl method
values = Request.Form.GetValues(ctl.ClientID);......
The original code was hardcoding the "ctl00$xx$xx" stuff, but the control may or may not be loaded so we cannot guarantee the name the control will get. In fact, I'm not even sure if this will work for all scenarios since only the FIRST control is a server control, the rest are just standard HTML controls so wouldn't have a "ClientID".
View 3 Replies
Sep 27, 2010
Can I dynamically create controls in Silverlight without a postback to the server (even an asynchronous one). Does silverlight drag-n-drop requires postback?
I'm asking this because I've an asp.net application where I dynamically create/delete lots of controls. So after the postback I'm getting error with view state stating that the control tree doesn't match the view state tree.
Can I avoid such problems in Silverlight?
View 4 Replies
Jan 11, 2011
I am creating a survey page that has a list of questions and answers that can be radiobuttonlists, checkboxlists or textboxes. These controls are added dynamically to a Repeater in its ItemDataBound event using Controls.Add.
I've managed to render the page ok but when I submit the form and iterate over the controls in the repeater to get the selectedvalues of the radiobuttons and textbox values, FindControl returns null. What do I need to do to get get the selected values? I've tried iterating over the RepeaterItems but that returned null too. I've tried different types of FindControl but it never resolves the control types.
It works if I add a declarative DataBinder in the Repeater like this
<asp:Repeater ID="rptSurvey" runat="server" Visible="true" EnableViewState="true" >
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Question") %>
</ItemTemplate>
</asp:Repeater>
However, I want want to dynamically add the controls but in doing this i cant get the selectedvalues when submitting. This is tha main structure of my code...
[code]....
View 1 Replies
Sep 27, 2010
Ihave the following code and would like to be able to control the layout of the textboxes and labels so they arent just in a long column. Right now everything works and controls are added, but they are added in 1 column which if you chose 32 from the dropdown the page becomes very long.. so would like to maybe wrap them across 3 columns so that each has at least 10 per column.
[Code]....
View 9 Replies
Feb 18, 2011
In My page i have a ajax Combolist Box in which if i select any no it generates some controls
here is my code
[Code]....
[Code]....
[Code]....
[Code]....
Now i want to retrieve all the values Entered By the user in the textBox on btnSubmit_Click
View 1 Replies
May 28, 2010
I have created listof gridview table cells dynamically.
Each cell is having different gridview.
As Gridviews are having different no of rows, they are not alligned properly.
I want to allignment property to top of the cell.
View 10 Replies
Mar 8, 2010
How to maintain view state for the dynamically added html controls to a table using javascript(Below is the javascript which I am using to add HTML Controls Dynamically"). Because during the postbacks if I found any error while validating the data present in the dynamically added html controls, the controls are loosing their state and again I need to start adding rows and add data.
[Code]....
View 3 Replies
May 18, 2010
I'm dynamically adding a DropDownList to the GridView in edit mode and I have set the TextBox Visibility to False. In edit mode I can see the DropDownList and I'm able to select an Item from the DropDownList but not able to access the SelectedValue in RowUpdating Event. How to get the selectedvalue of this DropDownList?
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow And (e.Row.RowState And DataControlRowState.Edit) > 0 Then
Dim ddl as DropDownList
FillStateList(ddl)
e.Row.Cells(4).Controls.Add(ddl)
ddl is the DropDownList that is added dynamically. And the default Textbox that is in the Edit mode is set to invisible. So there are actually two controls in the same cell in edit mode(TextBox is invisible).
DirectCast(Gridview1.Rows(e.RowIndex).FindControl("ddl"),DropDownList).SelectedValue
If I use the above statement I'm getting NullException.This is Probably because its a BoundField. Is there a way I can access the DropDownList 'ddl' SelectedValue?
View 4 Replies
Jun 18, 2010
[Code]....
I am adding linkbutton dynamically (actually above snippet tells what I am actually doing, in reality TableRow and TableCell are added dynamiccally). My problem is, I am not setting height of linkbuttuon which will added dynamically. I have no idea what text I have to add to linkbutton.
What I want, after all the link buttons are added, iterate through each added lin button, get the height of each linkbutton, store the max height, then re-iterate throgh the link buttons and set the height of each link button to max height.
View 5 Replies
May 26, 2010
i am currently working on a webform that has several dynamically populated dropdown lists. this works just fine, however, i have other web controls that require to have a postback..and at the time the page postsback, it reloads my dropdownlists, reseting whatever option i had chosen...
what can i do to resolve this?
View 2 Replies
Jun 2, 2010
I am having datagridview control with dynamically added BoundField columns.I want to have tetxboxes in each cell of the gridview so taht user will enter data in gridview textboxes and at last on button click it will be saved in database.
View 14 Replies
Nov 23, 2010
I am adding table rows dynamically, after I return from a post back, these rows disappear.
Is there a way to preserve these rows and add them back on page load?
View 8 Replies