Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > creating dynamic controls out of static controls

Reply
Thread Tools

creating dynamic controls out of static controls

 
 
Tarscher
Guest
Posts: n/a
 
      02-12-2007
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

 
Reply With Quote
 
 
 
 
Eliyahu Goldin
Guest
Posts: n/a
 
      02-12-2007
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/egoldin
http://usableasp.net


"Tarscher" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) oups.com...
> 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
>



 
Reply With Quote
 
 
 
 
Tarscher
Guest
Posts: n/a
 
      02-12-2007
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"
<(E-Mail Removed)> wrote:
> 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
>
> "Tarscher" <(E-Mail Removed)> wrote in message
>
> news:(E-Mail Removed) oups.com...
>
> > 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



 
Reply With Quote
 
Eliyahu Goldin
Guest
Posts: n/a
 
      02-12-2007
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/egoldin
http://usableasp.net


"Tarscher" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
> 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"
> <(E-Mail Removed)> wrote:
>> 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
>>
>> "Tarscher" <(E-Mail Removed)> wrote in message
>>
>> news:(E-Mail Removed) oups.com...
>>
>> > 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

>
>



 
Reply With Quote
 
Tarscher
Guest
Posts: n/a
 
      02-12-2007
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"
<(E-Mail Removed)> wrote:
> 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
>
> "Tarscher" <(E-Mail Removed)> wrote in message
>
> news:(E-Mail Removed) ups.com...
>
> > 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"
> > <(E-Mail Removed)> wrote:
> >> 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

>
> >> "Tarscher" <(E-Mail Removed)> wrote in message

>
> >>news:(E-Mail Removed) groups.com...

>
> >> > 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



 
Reply With Quote
 
=?Utf-8?B?UGV0ZXIgQnJvbWJlcmcgW0MjIE1WUF0=?=
Guest
Posts: n/a
 
      02-12-2007
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




"Tarscher" wrote:

> 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"
> <(E-Mail Removed)> wrote:
> > 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
> >
> > "Tarscher" <(E-Mail Removed)> wrote in message
> >
> > news:(E-Mail Removed) ups.com...
> >
> > > 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"
> > > <(E-Mail Removed)> wrote:
> > >> 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

> >
> > >> "Tarscher" <(E-Mail Removed)> wrote in message

> >
> > >>news:(E-Mail Removed) groups.com...

> >
> > >> > 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

>
>
>

 
Reply With Quote
 
Tarscher
Guest
Posts: n/a
 
      02-13-2007
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]
<(E-Mail Removed)> wrote:
> 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
>
> "Tarscher" wrote:
> > 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"
> > <(E-Mail Removed)> wrote:
> > > 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

>
> > > "Tarscher" <(E-Mail Removed)> wrote in message

>
> > >news:(E-Mail Removed) oups.com...

>
> > > > 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"
> > > > <(E-Mail Removed)> wrote:
> > > >> 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

>
> > > >> "Tarscher" <(E-Mail Removed)> wrote in message

>
> > > >>news:(E-Mail Removed) groups.com...

>
> > > >> > 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



 
Reply With Quote
 
Eliyahu Goldin
Guest
Posts: n/a
 
      02-13-2007
Stijn,

I personally hardly ever create any controls dynamically. Usually you can
achieve the same with hidden static controls. Make only one of them visible
at the time. If hide controls by setting Visible=false, they won't get
rendered to the client which is exactly the same effect as not creating them
in the first place.

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net


"Tarscher" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
>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]
> <(E-Mail Removed)> wrote:
>> 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
>>
>> "Tarscher" wrote:
>> > 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"
>> > <(E-Mail Removed)> wrote:
>> > > 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

>>
>> > > "Tarscher" <(E-Mail Removed)> wrote in message

>>
>> > >news:(E-Mail Removed) oups.com...

>>
>> > > > 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"
>> > > > <(E-Mail Removed)> wrote:
>> > > >> 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

>>
>> > > >> "Tarscher" <(E-Mail Removed)> wrote in message

>>
>> > > >>news:(E-Mail Removed) groups.com...

>>
>> > > >> > 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

>
>



 
Reply With Quote
 
Tarscher
Guest
Posts: n/a
 
      02-13-2007
Eliyaha, that's the technique I currently use but this makes it hard
to add more user controls. And that's something I really want to
avoid.

On 13 feb, 10:33, "Eliyahu Goldin"
<(E-Mail Removed)> wrote:
> Stijn,
>
> I personally hardly ever create any controls dynamically. Usually you can
> achieve the same with hidden static controls. Make only one of them visible
> at the time. If hide controls by setting Visible=false, they won't get
> rendered to the client which is exactly the same effect as not creating them
> in the first place.
>
> --
> Eliyahu Goldin,
> Software Developer & Consultant
> Microsoft MVP [ASP.NET]http://msmvps.com/blogs/egoldinhttp://usableasp.net
>
> "Tarscher" <(E-Mail Removed)> wrote in message
>
> news:(E-Mail Removed) ups.com...
>
> >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]
> > <(E-Mail Removed)> wrote:
> >> 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

>
> >> "Tarscher" wrote:
> >> > 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"
> >> > <(E-Mail Removed)> wrote:
> >> > > 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

>
> >> > > "Tarscher" <(E-Mail Removed)> wrote in message

>
> >> > >news:(E-Mail Removed) oups.com...

>
> >> > > > 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"
> >> > > > <(E-Mail Removed)> wrote:
> >> > > >> 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

>
> >> > > >> "Tarscher" <(E-Mail Removed)> wrote in message

>
> >> > > >>news:(E-Mail Removed) groups.com...

>
> >> > > >> > 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



 
Reply With Quote
 
Russell
Guest
Posts: n/a
 
      02-13-2007
You could take the hidden controls a bit further... place them all in
divs and set the style "display" property to "none". Absolute-
position the divs to the same location on the page. Set "display" to
"block" for the one that corresponds to the default selection in your
dropdown (if there is one.) Add a hidden form field whose value is
set to the ID of the initially selected control (or "" if there isn't
one.) Make dropdown option values the same as the corresponding div
ids and then add a client onchange handler
(onchange="ToggleEditor(this);") which could call a function something
like the following

function ToggleEditor(select) {
if (select.selectedIndex >= 0) {
var hidden = document.getElementById('hiddenSelectedDivID');
if (hidden) {
var elem = document.getElementById(hidden.value);
if (elem) {elem.style.display = 'none';}
hidden.value = '';
elem =
document.getElementById(select.options(select.sele ctedIndex).value);
if (elem) {
elem.style.display = 'block';
hidden.value = elem.id;
}
}
}
}

This way you can change editors without a postback, unless there is
other stuff you do with them on postbacks like populate them with data
that can't be predetermined.

On Feb 13, 5:01 am, "Tarscher" <(E-Mail Removed)> wrote:
> Eliyaha, that's the technique I currently use but this makes it hard
> to add more user controls. And that's something I really want to
> avoid.
>
> On 13 feb, 10:33, "Eliyahu Goldin"
>
>
>
> <(E-Mail Removed)> wrote:
> > Stijn,

>
> > I personally hardly ever create any controls dynamically. Usually you can
> > achieve the same with hidden static controls. Make only one of them visible
> > at the time. If hide controls by setting Visible=false, they won't get
> > rendered to the client which is exactly the same effect as not creating them
> > in the first place.

>
> > --
> > Eliyahu Goldin,
> > Software Developer & Consultant
> > Microsoft MVP [ASP.NET]http://msmvps.com/blogs/egoldinhttp://usableasp.net

>
> > "Tarscher" <(E-Mail Removed)> wrote in message

>
> >news:(E-Mail Removed) oups.com...

>
> > >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]
> > > <(E-Mail Removed)> wrote:
> > >> 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

>
> > >> "Tarscher" wrote:
> > >> > 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"
> > >> > <(E-Mail Removed)> wrote:
> > >> > > 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

>
> > >> > > "Tarscher" <(E-Mail Removed)> wrote in message

>
> > >> > >news:(E-Mail Removed) oups.com...

>
> > >> > > > 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"
> > >> > > > <(E-Mail Removed)> wrote:
> > >> > > >> 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

>
> > >> > > >> "Tarscher" <(E-Mail Removed)> wrote in message

>
> > >> > > >>news:(E-Mail Removed) groups.com...

>
> > >> > > >> > 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 -

>
> - Show quoted text -



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Creating dynamic objects with dynamic constructor args Greg Hoover Python 1 03-25-2008 04:12 PM
Dynamic Controls created by Dynamic Controls Ronald ASP .Net 2 01-17-2006 12:44 AM
Finding out whether perl was compiled using dynamic / static linking bernd Perl Misc 2 05-24-2005 11:59 AM
Dynamic Controls, Placeholder, Retrieve Information from Dynamic Controls Denny Smolinski via .NET 247 ASP .Net Web Controls 1 05-04-2004 09:15 PM
VPN between 2 Cisco routers (1 static, 1 dynamic) with access from stat --> dynamic over ISDN Hans-Peter Walter Cisco 3 01-21-2004 02:12 PM



Advertisments