I add a custom user control to my page, with textboxes and radioboxes, but after each postback, the contents are removed and I don’t know how to read the values that were entered in it.
From what I’ve learned you have to add the user controls on each refresh, but that does not restore their state. I want the values to be stored in the ViewState but that does not happen for some reason.
Note: I need to add multiple user controls on one page, so I need to identify each user control, either trough an ID or a linq expression that selects that user control from my page.
Im programming with C# 4.0
How I add my user control:
private void AddInstrumentDetailToPage()
{
RMAItem lItem = (RMAItem)Page.LoadControl("/Controls/RMAItem.ascx");
InstrumentDetail.Controls.Add(lItem);
}
I save the amount of controls I have in the ViewState, and call AddInstrumentDetail() that amount of times, but they appear to be empty. I’ve read somewhere that I have to add it in Page_Init because view state is not initialised yet, but that doesn’t help either.
You need to recreate dynamically added (User-)Controls at latest in
Page_Loadto maintain ViewState. So you should store the number of already added controls in a ViewState-Property and according to that reload them inPage_Load. You have to sum up this variable with 1 inAddInstrumentDetailToPage.MSDN: Dynamically Adding User Controls
If you store the number of added controls in a Viewstate variable, you cannot recreate controls in Page’s Init-Event because the ViewState-Variable would yet not been reloaded there.