I assume that what I want to do has been done 1000 of times but maybe
I implement it in the wrong way?
What I want to do:
A dropdownlist is populated with editornames. An editor is a user
control. When the user makes a choice out of the DDL, the user control
(editor) is rendered to the screen. I make the user control a dynamic
control that I add to a placeholder. The fact that the user control
needs to be dynamic is actually the only restrain. I really don't see
how I can pass data to the dynamic control (editors).
Someone has an idea on how to tackle this problem?
Thanks
Stijn
On 12 feb, 18:05, Peter Bromberg [C# MVP]
I just read this interchange, and I fear that you have created a flawed
design. It's a case of "the cart before the horse" here. Better revisit
your
logic and see if you cannot find a less - complicated way to reach your
goal.
Peter
--
Site:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com
Short urls & more:
http://ittyurl.net
:
Eliyahu, what i try:
- On the SelectedIndexChanged event of the dropdownlist I read out the
DDL data and create the appropriate controls
protected void KeywordDropDownList_SelectedIndexChanged(object
sender, EventArgs e)
{
string selectedKeyword =
KeywordDropDownList.SelectedValue.ToString();
DrawKeywordEditor(selectedKeyword);
}
- I then try to recreate the control in the Preinit stage but this
seems to fail.
base.OnPreInit(e);
IKeywordEditor myIKE =
EditorHolder.FindControl("KeywordEditor") as
IKeywordEditor;
The EditorHolder is not known in this page (it is in the init stage).
When I recreate it in the Init stage I always get a null returned. The
KeywordEditor control is thus not found.
I'm probably missing something crucial here.
Stijn
On 12 feb, 16:51, "Eliyahu Goldin"
Stijn,
You need to re-create dynamic controls only if you are in a postback
and the
controls need to pickup their properties that arrive to the server in
the
same postback. In your case, you seem to create controls every
postback from
scratch depending on the selected ddl item. If it is the case, I
don't see
why can't you wait with creating controls till the stage where you
already
know what to create.
--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP
[ASP.NET]
http://msmvps.com/blogs/egoldinhttp://usableasp.net
Thanks Eliyah for the quick answer. Some moet questions tough.
You say I have to recreate the controls on the PreInit even. But
how
can I know the state of the drop down list (a static control) in
the
PreInit stage? I can thus not create my dynamic controls since I
don't
know what's in the drop down list.
Can you please explain me what I do when the dropdownlist
SelectedIndexChanged had fired?
Thanks
Stijn
On 12 feb, 15:34, "Eliyahu Goldin"
When you create controls first time, do it in Page_Load event or
later.
When
you need to re-create them on postbacks, do it in PreInit event.
--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP
[ASP.NET]
http://msmvps.com/blogs/egoldinhttp://usableasp.net
hi all,
I have this seemingly simple problem. I have lost a lot of time
on it
though.
When a user selects a value from a dropdownlist (static control)
a
dynamic control is generated. I have to create the dynamic
controls
in the OnInit stage of the lifecycle. Since data from static
controls
is not yet available in the OnInit stage I can't know what
dynamic
control I have to create.
How can I overcome this problem? Since this question has
probably
already been answered a good tutorial will also do of course. I
have
been looking on the net but no success.
Thanks in advance
Stijn- Hide quoted text -