Web Forms :: Unable To Maintain Viewstate Of Dynamically Added User Controls
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
Similar Messages:
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 23, 2010
I am writing a search results page for an airline booking system. I have Next/Previous buttons to view flights for the next or previous days. The way i have done my results grid is that i use an HtmlTable and dynamically add rows, cells and controls into the cells. This gives ultimate flexibility given that we can add any control type we want and have it function as it does everywhere else in the system. As you should be aware - i must recreate these controls each time the page is reloaded (in the page_init event) since asp does not handle this automatically.
When they go next/previous it refreshes the flight data and re-populates the grids. If they select a flight in the return grid (by checking the RadioButton), and go next on the FIRST leg grid, the selection of the return leg stays the same after the postback
- which is great. But the problem is, if the flight they selected on the return leg is no longer available it will not create the control and i get the following error;
"Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request."
Is there any way to tell asp.net that if you do not find the control anymore, simply ignore it rather than throwing the error? The nature of this design is that there potentioally WILL be a different layout after the page is posted back.
View 7 Replies
Feb 7, 2011
I am just trying to add some dynamic controls to the SimpleQueryControl (which of course is a kind of Web Control and inherits all the methods accordingly). I dont know how to get the values of Child controls which I have added dynamically.
class RoomPickerQueryControl : SimpleQueryControl
{
protected override void OnLoad(EventArgs e)
{
if (!Page.IsPostBack)
{
EnsureChildControls();
mColumnList.Visible = false;
}
}
protected override void OnInit(EventArgs e).............................
View 2 Replies
Oct 9, 2012
* i binded dropdown value from database in gridview
* then display the value in next column based on selecting dropdown value
* when i click add new row button . could not bind the dropdown value.
below are my code
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<contenttemplate> <asp:Label ID="Label1" runat="server" Text="2"></asp:Label>
<asp:gridview ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
[code]....
View 1 Replies
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
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
Jun 30, 2010
i have a WSS 3.0 Webpart that contains an UpdatePanel with a customized SPGridView. I want to provide instant filtering of data by adding a textbox below the column header when the column shall be filterable. There is a jQuery based solution for this on the net, but it's totally client side and doesn't work with paging, so i tried it on my own.
In the CreateChildControls of my SPGridViewExt class i have :
[Code]....
I've also overridden the DoFilterPostBackEventProcessing method to create a "[ColumnName] LIKE '%[textbox.value]%'" filterExpression for my datasource which also creates the LIKEFILTER_COLUMN and LIKEFILTER_VALUE ViewState Items so i can identify the textbox that should refocus on after the postback. The filtering itself works great, but whatever i try, i am not able to set the focus to the textbox after entering the first letter.
[Code]....
All these four methods don't work. The registerstartupscript call doesn't even render the script when i search the page source after postback. I also tried to add a HiddenField to my webpart and set it's value to the control id of the textbox in onfocus, then register a startupscript in OnLoad that focuses the control if the HiddenField has a value, but to no avail.
View 2 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
Jul 23, 2010
I have a search page containing a collapsible panel with several controls including text, radio, drop list and check box. In the same page there is a gridview to display search result and links to other pages.Everytime I click on a link in the gridview, the viewstate is only maintained if I nevigate with the pagination of the gridview. However if I click on a link in the gridview and click the back button to the search, everything goes back to default, and the search results will be gone from the gridview. How may I enable the controls and the gridview to remain the same if I hit back button to it?
View 3 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
Mar 13, 2011
I'm quite new to this so excuse me if this is a stupid question.
I created an extended dropdownlist based on the instruction on the asp.net site.
[URL]
My control gets a list of items from LINQ to SQL.
here's my problem:
When the page I used the control on posts back, the list get's re-initialized and looses it's selection.
How do I overcome this problem and keep the selection upon postback?
[Code]....
View 3 Replies
Apr 21, 2014
If we set enable view state = false of a page then can we maintain the view state of that page ?
View 1 Replies
Feb 12, 2010
I have a problem with ViewState. I have an aspx page that has a treeview on the left and an UpdatePanel with an ASP.NET Panel inside on the right. It is in that inner Panel where I load and unload dynamically user controls. I use that update panel to load dynamically controls.
I also made a custom control for my user controls because I need to pass some values from page. On that constructor I use ViewState to store these values.
The first time I load the user control I call its constructor with parameters. When I reload that user control on each postback I use its normal constructor.
My problem is I the values I've stored on ViewState has become null on successive postback.
Update:
This is a piece of my user control:
public class MyUserControl : System.Web.UI.UserControl
{
private int PKId
{
get { return ViewState["pkId"] as int; }
set { ViewState["pkId"] = value; }
}
public MyUserControl(int pkId)
{
this.PKId = pkId;
}
...
}
I'm following this article to load controls dynamically: http://msdn.microsoft.com/en-us/magazine/cc748662.aspx#id0070065.
Second Update:
I also set the same control ID when I load the user control at first time and on each reaload.
Maybe I can use another method to store these values like input hidden fields or Cache. I've choosen ViewState because I don't want to overload server with Session values for each user.
Third update:
I load the controls with this code:
System.Web.UI.UserControl baseControl = LoadControl(ucUrl) as System.Web.UI.UserControl;
if (baseControl != null)
{
baseControl.ID = "DestinationUserControl";
PanelDestination.Controls.Add(baseControl);
}
And reaload with this code:
DynamicControls.CreateDestination ud = this.LoadControl(TrackedUserControl) as DynamicControls.CreateDestination;
if (ud != null)
{
ud.ID = "DestinationUserControl";
PanelDestination.Controls.Add(ud);
}
View 4 Replies
Mar 4, 2011
how can i add dynamic control (like textbox) on asp.net page at runtime and maintain the values of the control (viewstate of control ) on client browser refresh or roundtrip?
View 3 Replies
Feb 10, 2010
I have a dynamically created address user control (on a customer administration screen) that is created through the use of a place holder. A customer can have multiple addresses, so they dynamically dropped onto the page.
I have got this far, but now I need to be able to save the updated addresses for the customer but I can't get any event to fire on the user controls. When I check to see run plhAddress.HasControls() it returns false?
The way I am generating the user controls is as follows.. private UserControl LoadControl(string UserControlPath, params object[] constructorParameters)
View 9 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
May 24, 2010
I have a drop down list, and I added some items in it as follows
<asp:DropDownList ID="ddlInsAuther" runat="server"
DataSourceID="ObjectDataSourceInsAuthers" DataTextField="AutherName"
DataValueField="AutherID">
[code]...
View 1 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