T
TS
So what is happening is the same thing that was happening, the top most
parent's event handler is called correctly, but its child's event is
envoking the parent's event handler (the same one).
parent's event handler is called correctly, but its child's event is
envoking the parent's event handler (the same one).
TS said:Hey Steven, I have a problem while working with the same DataList control.
That one problem that caused the wrong event handler to get called is
happening now. I am working on a different project using the same control
that i got finished on the other project and trying to implement on this new
project, and it is set up almost the same. The only difference is that on
this new one, i have added a postback step before the custom datalist gets
loaded.
Any ideas as why the wrong event handler is getting called?
thanks
it'llSteven Cheng said:You're welcome TS.
Glad that you've overcome the problem.
Regards,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "TS" <[email protected]>
| References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<unRs#[email protected]>
<[email protected]>
<#[email protected]>
<[email protected]>
<#[email protected]>
<[email protected]>
| Subject: Re: explanation of when need to repopulate control
| Date: Mon, 8 Aug 2005 12:50:32 -0500
| Lines: 1445
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet.buildingcontrols
| NNTP-Posting-Host: 103nat100.tea.state.tx.us 198.214.103.100
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet.buildingcontrols:4014
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.buildingcontrols
|
| Well you were right that it had something to do with the custom control.
The
| datalist was trying to load itself during page load. i put the code in
Init,
| and it worked.
|
| thanks steven
|
| | > Thanks for your followup TS.
| >
| > So can I say that currently your custom webcontrol(not template list
| > control) can correctly be added both statically and dynamically in the
| > normal DataList or Repeater controls (asp.net buildin ) , but have some
| > problem for postback events when added in your custom list control?
| >
| > If so, we should keep focus on the custom datalist control. Has it any
| > problems when we nest some asp.net buildin controls in it? Would you try
| > making a simplified version of your custom datalist control so that we
can
| > have a view to see whether there is anything wrong in it. Also,OnItemDataBound(DataListItemEventArgsbe
| > helpful you also provide the complete code that you dynamically add
| control
| > into the datalist (through reflection).
| >
| > Thanks,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| >
| > --------------------
| > | From: "TS" <[email protected]>
| > | References: <[email protected]>
| > <[email protected]>
| > <[email protected]>
| > <[email protected]>
| > <unRs#[email protected]>
| > <[email protected]>
| > <#[email protected]>
| > <[email protected]>
| > | Subject: Re: explanation of when need to repopulate control
| > | Date: Fri, 5 Aug 2005 17:19:23 -0500
| > | Lines: 1298
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | Message-ID: <#[email protected]>
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet.buildingcontrols
| > | NNTP-Posting-Host: 103nat100.tea.state.tx.us 198.214.103.100
| > | Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP15.phx.gbl
| > | Xref: TK2MSFTNGXA01.phx.gbl
| > microsoft.public.dotnet.framework.aspnet.buildingcontrols:4003
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.buildingcontrols
| > |
| > | I have a new problem now. I have figured out that the cause is the
same
| > | reason. If its in the custom DataList, it doesn't work, else it does
| work.
| > |
| > | The scenario:
| > | After the initial page load, you enter data into controls and hit
submit
| > | button, the process is as follows:
| > | Page_Load
| > | DataList's OnLoad
| > | Composite Control's OnLoad
| > | Submit button's OnClick - At this point, the controls in the composite
| > | control have no listitems and no selectedValue properties.
| > |
| > | I have statically added the composite control onto the same page as
the
| > | dynamic one, so here is the process in this scenario:
| > | Page_Load
| > | Composite Control's OnLoad (The one whose parent is Page)
| > | DataList's OnLoad
| > | Composite Control's OnLoad (The one whose parent is the Custom
DataList)
| > | Submit button's OnClick - At this point, the controls in the
statically
| > | declared composite control have listitems and have values for
| > selectedValue
| > | properties.
| > |
| > | So the same control at the same time - the one outside the custom
| Datalist
| > | has its controls' state set up correctly, the ones inside does not.
| > |
| > | So the same reason is at play here. Maybe since i am dynamically
| creating
| > | the class using reflection (Assembly.CreateInstance()) that has
| something
| > to
| > | do with it?
| > |
| > | Please help mr. Cheng.
| > |
| > | Thank you very much!
| > |
| > | TS
| > |
| > |
| > |
| > | | > | > Hi TS,
| > | >
| > | > First, I'm glad that you've got your composite control work, all the
| > | > dropdownlist's postback events can fire correctly,yes?
| > | >
| > | > As for the new problem you encountered when adding your composite
| > control
| > | > into DataList's item, is the DataList the asp.net's buildin DataList
| > | > control? And since you mentioned that you dynamically add your
| control
| > | > into it, how do you dynamically add your custom control? Will there
| > occur
| > | > problem if you statically add your control into DataList?
| > | >
| > | > Thanks,
| > | >
| > | > Steven Cheng
| > | > Microsoft Online Support
| > | >
| > | > Get Secure! www.microsoft.com/security
| > | > (This posting is provided "AS IS", with no warranties, and confers
no
| > | > rights.)
| > | >
| > | > --------------------
| > | > | From: "TS" <[email protected]>
| > | > | References: <[email protected]>
| > | > <[email protected]>
| > | > <[email protected]>
| > | > <[email protected]>
| > | > <unRs#[email protected]>
| > | > <[email protected]>
| > | > | Subject: Re: explanation of when need to repopulate control
| > | > | Date: Wed, 3 Aug 2005 19:07:16 -0500
| > | > | Lines: 1153
| > | > | X-Priority: 3
| > | > | X-MSMail-Priority: Normal
| > | > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | > | Message-ID: <#[email protected]>
| > | > | Newsgroups:
| microsoft.public.dotnet.framework.aspnet.buildingcontrols
| > | > | NNTP-Posting-Host: 103nat100.tea.state.tx.us 198.214.103.100
| > | > | Path:
| TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP14.phx.gbl
| > | > | Xref: TK2MSFTNGXA01.phx.gbl
| > | > microsoft.public.dotnet.framework.aspnet.buildingcontrols:3989
| > | > | X-Tomcat-NG:
| microsoft.public.dotnet.framework.aspnet.buildingcontrols
| > | > |
| > | > | Well Steve, I am almost done. My control works well, except its
not
| in
| > | the
| > | > | framework i just mentioned. Adding my control dynamically to the
| > | > datalist's
| > | > | item may be the root of the cause. i've made sure all custom
| controls
| > | > | implmenet INamingContainer & I think all controls have their id's
| set,
| > | so
| > | > | what else can i do?
| > | > |
| > | > | thanks a bunch
| > | > |
| > | > | | > | > | > I have figured the cause of the problem, sort of. My main
control
| > was
| > | > | being
| > | > | > loaded dynamically during a custom data list control's
| ItemDataBound
| > | > | event,
| > | > | > and then added to the e.item.controls collection. Once I removed
| it
| > | from
| > | > | > here, the correct event was called in my control. the problem
is i
| > | need
| > | > to
| > | > | > keep it where it is because of the way the page works.
| > | > | >
| > | > | > I tried to add INamingContainer to the custom Datalist, but that
| > | didn't
| > | > | > help. Any ideas what could make this happen?
| > | > | >
| > | > | > thanks so much, i know i'm being a pain, but i'm stuck!
| > | > | >
| > | > | > This is the custom DataLists' event:
| > | > | > protected override voide)
| > | > | >
| > | > | > {
| > | > | >
| > | > | > base.OnItemDataBound(e);
| > | > | >
| > | > | > Parameter parameter = (Parameter)e.Item.DataItem;
| > | > | >
| > | > | > try
| > | > | >
| > | > | > {
| > | > | >
| > | > | > Control control;
| > | > | >
| > | > | > if(parameter.Type == ParameterType.Control)
| > | > | >
| > | > | > control = this.Page.LoadControl(parameter.ControlPath);
| > | > | >
| > | > | > else
| > | > | >
| > | > | > {
| > | > | >
| > | > | > Assembly assembly = parameter.Assembly;
| > | > | >
| > | > | > if(assembly == null)
| > | > | >
| > | > | > {
| > | > | >
| > | > | > // The control didn't declare its own assembly, so use the
| report's
| > | > | > ControlsAssembly
| > | > | >
| > | > | > assembly = this.ControlsAssembly;
| > | > | >
| > | > | > // Ther report's ControlsAssembly is null, so use current page's
| > | > assembly
| > | > | >
| > | > | > if(assembly == null)
| > | > | >
| > | > | > assembly = this.Page.GetType().BaseType.Assembly;
| > | > | >
| > | > | > }
| > | > | >
| > | > | >
| > | > | > control = (Control)
| > | assembly.CreateInstance(parameter.ControlTypeName);
| > | > | >
| > | > | > }
| > | > | >
| > | > | > control.ID = parameter.Name;
| > | > | >
| > | > | > // Set up all the properties of this control from the
| > | > parameter.properties
| > | > | >
| > | > | > foreach(DictionaryEntry de in parameter.Properties)
| > | > | >
| > | > | > SetProperty(de.Key.ToString(), de.Value.ToString(), control);
| > | > | >
| > | > | >
| > | > | > e.Item.Controls.Add(control);
| > | > | >
| > | > | > }
| > | > | >
| > | > | > catch (Exception ex)
| > | > | >
| > | > | > {
| > | > | >
| > | > | > throw new ApplicationException("Unable to render criteria.
Reason:
| > " +
| > | > | > ex.Message, ex);
| > | > | >
| > | > | > }
| > | > | >
| > | > | > }
| > | > | >
| > | > | > | > | > | > > In testing, i removed the main parent dropdown and only left
the
| 2
| > | > below
| > | > | > it.
| > | > | > > this time, the same scenario happened...when the child
dropdown
| > list
| > | > | > > autopostsback, it's immediate parent's selectedindexchanged
| event
| > | > fires!
| > | > | I
| > | > | > 'm
| > | > | > > starting to pull my hair out now...I"m stuck!
| > | > | > >
| > | > | > > please help superman
| > | > | > >
| > | > | > > | > | > | > > > Another problem:
| > | > | > > >
| > | > | > > > while i'm waiting on your remark to my last post, i removed
| the
| > | sub
| > | > | > > > composite controls from my composite control so that there
is
| > only
| > | > | drop
| > | > | > > down
| > | > | > > > lists on it. During CreateChildcontrols, i load the main
drop
| > down
| > | > | using
| > | > | > > > databind. When the page is sent to browser for the first
time,
| i
| > | > have
| > | > | my
| > | > | > > > main drop down filled. I then select an item and its
| > | > | > SelectedIndexChanged
| > | > | > > > fires and populates the send drop down list. Then when i
| select
| > an
| > | > | item
| > | > | > > from
| > | > | > > > it, it posts back, and the event that gets called is the
| > | main(first)
| > | > | > > > dropdown list's SelectedIndexChanged event, which then
| > | re-populates
| > | > | the
| > | > | > > > second drop down list, then the control returns to the
browser
| > | (The
| > | > | > > > SelectedIndexChanged event never fired for the 2nd
dropdown's
| > | > changed
| > | > | > > > event.???
| > | > | > > >
| > | > | > > > thanks again
| > | > | > > >
| > | > | > > > using System;
| > | > | > > >
| > | > | > > > using System.Collections.Specialized;
| > | > | > > >
| > | > | > > > using System.Web.UI;
| > | > | > > >
| > | > | > > > using System.Web.UI.WebControls;
| > | > | > > >
| > | > | > > > using System.Text;
| > | > | > > >
| > | > | > > > using OperationsTeams.Business;
| > | > | > > >
| > | > | > > > using OperationsTeams.Data;
| > | > | > > >
| > | > | > > > using OperationsTeams.Reporting;
| > | > | > > >
| > | > | > > > using OperationsTeams.Reporting.WebControls;
| > | > | > > >
| > | > | > > > namespace OperationsTeams.Web.ReportControls
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > /// <summary>
| > | > | > > >
| > | > | > > > /// Summary description for FiscalAgentHierarchy.
| > | > | > > >
| > | > | > > > /// </summary>
| > | > | > > >
| > | > | > > > public class FiscalAgentHierarchy : WebControl,
| > | > | IReportParameterControl,
| > | > | > > > INamingContainer
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > public FiscalAgentHierarchy()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@SchoolYear"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@ReportingGroup"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@FiscalAgentID"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@FundingSourceID"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@ProviderID"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@SiteID"));
| > | > | > > >
| > | > | > > > Parameters.Add(new Parameter("@ClassID"));
| > | > | > > >
| > | > | > > > Parameters["@SchoolYear"].Value = 2006;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > >
| > | > | > > > #region Events
| > | > | > > >
| > | > | > > > protected override void OnLoad(EventArgs e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > base.OnLoad (e);
| > | > | > > >
| > | > | > > >
| > | > | > > > // The last state of controls from viewstate is now loaded
| > (Before
| > | > the
| > | > | > > > client data is processed)
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > >
| > | > | > > > protected override void OnPreRender(EventArgs e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > base.OnPreRender (e);
| > | > | > > >
| > | > | > > > // The controls now have the client values from the the last
| > | > postback
| > | > | > > >
| > | > | > > > // ddlFundingSource.Visible = FundingSourceVisible;
| > | > | > > >
| > | > | > > > // ddlProviders.Visible = ProviderVisible;
| > | > | > > >
| > | > | > > > // ddlSites.Visible = SiteVisible;
| > | > | > > >
| > | > | > > > // ddlClasses.Visible = ClassVisible;
| > | > | > > >
| > | > | > > > // ddlSites.Items.Add(new ListItem("help","1"));
| > | > | > > >
| > | > | > > > // ddlSites.Items.Add(new ListItem("me","2"));
| > | > | > > >
| > | > | > > > // ddlSites.Visible = true;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void
| > rysReportingYearSelector_ReportingYearChanged(object
| > | > | > sender,
| > | > | > > > EventArgs e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > // this.LoadFundingSource();
| > | > | > > >
| > | > | > > > // this.LoadProviders();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void fasFiscalAgent_FiscalAgentChanged(object
sender,
| > | > | EventArgs
| > | > | > e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > this.LoadFundingSource();
| > | > | > > >
| > | > | > > > this.LoadProviders();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void ddlFundingSource_SelectedIndexChanged(object
| > sender,
| > | > | > > EventArgs
| > | > | > > > e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > LoadSites();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void ddlProviders_SelectedIndexChanged(object
sender,
| > | > | EventArgs
| > | > | > e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > LoadSites();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void ddlSites_SelectedIndexChanged(object sender,
| > | EventArgs
| > | > e)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > LoadClasses();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > #endregion
| > | > | > > >
| > | > | > > > protected override void CreateChildControls()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > this.ddlFundingSource = new DropDownList();
| > | > | > > >
| > | > | > > > this.ddlProviders = new DropDownList();
| > | > | > > >
| > | > | > > > this.ddlSites = new DropDownList();
| > | > | > > >
| > | > | > > > this.ddlClasses = new DropDownList();
| > | > | > > >
| > | > | > > > ddlFundingSource.ID = FundingSourceControlId;
| > | > | > > >
| > | > | > > > ddlProviders.ID = ProvidersControlId;
| > | > | > > >
| > | > | > > > ddlSites.ID = SitesControlId;
| > | > | > > >
| > | > | > > > ddlClasses.ID = ClassesControlId;
| > | > | > > >
| > | > | > > >
| > | > | > > > LoadProviders();
| > | > | > > >
| > | > | > > > // start containing table
| > | > | > > >
| > | > | > > > this.Controls.Add(WebHelper.MakeLiteral("<table
cellpadding=0
| > | > | > > > cellspacing=0><tr><td>"));
| > | > | > > >
| > | > | > > >
| > | > | > > >this.Controls.Add(WebHelper.MakeLiteral( said:| > | > | > > >
| > | > | > > > // this.Controls.Add(rysReportingYearSelector);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr><tr><td>"));
| > | > | > > >
| > | > | > > >this.Controls.Add(WebHelper.MakeLiteral( said:| > | > | > > >
| > | > | > > > // this.Controls.Add(fasFiscalAgent);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr><tr><td>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("<table><tr><td>Funding
| > | > | > > > Source</td><td>"));
| > | > | > > >
| > | > | > > > this.Controls.Add(ddlFundingSource);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr><tr><td>"));
| > | > | > > >
| > | > | > > >
| > | > | > >
| > | > | >
| > | > |
| > | >
| > |
| >
|this.Controls.Add(WebHelper.MakeLiteral( said:| > | > | > > > );
| > | > | > > >
| > | > | > > > this.Controls.Add(ddlProviders);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr><tr><td>"));
| > | > | > > >
| > | > | > > >
| > | > | >
| > | >
| >this.Controls.Add(WebHelper.MakeLiteral( said:| > | > | > > >
| > | > | > > > this.Controls.Add(ddlSites);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr><tr><td>"));
| > | > | > > >
| > | > | > > >
| > | > | > >
| > | > | >
| > | > |
| > | >
| > |
| >
|ddlProviders.AutoPostBackthis.Controls.Add(WebHelper.MakeLiteral( said:| > | > | > > >
| > | > | > > > this.Controls.Add(ddlClasses);
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > > // end containing table
| > | > | > > >
| > | > | > > >
| this.Controls.Add(WebHelper.MakeLiteral("</td></tr></table>"));
| > | > | > > >
| > | > | > > > ddlFundingSource.SelectedIndexChanged += new
| > | > | > > > EventHandler(ddlFundingSource_SelectedIndexChanged);
| > | > | > > >
| > | > | > > > ddlProviders.SelectedIndexChanged += new
| > | > | > > > EventHandler(ddlProviders_SelectedIndexChanged);
| > | > | > > >
| > | > | > > > ddlSites.SelectedIndexChanged += new
| > | > | > > > EventHandler(ddlSites_SelectedIndexChanged);
| > | > | > > >
| > | > | > > > ddlFundingSource.AutoPostBack ==
| > | > | > > > ddlSites.AutoPostBack = true;
| > | > | > > >
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void LoadFundingSource()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > int fiscalAgentId =
| > 1;//this.fasFiscalAgent.SelectedFiscalAgentId;
| > | > | > > >
| > | > | > > >
| > | > | > > > if(fiscalAgentId != int.MinValue)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > FundingSourceVisible = true;
| > | > | > > >
| > | > | > > > this.ddlFundingSource.DataSource =
| > | > | > FiscalAgentFunding.Find(fiscalAgentId);
| > | > | > > >
| > | > | > > > this.ddlFundingSource.DataTextField = "ShortDescription";
| > | > | > > >
| > | > | > > > this.ddlFundingSource.DataValueField = "CodeId";
| > | > | > > >
| > | > | > > > this.ddlFundingSource.DataBind();
| > | > | > > >
| > | > | > > > if(this.ddlFundingSource.Items.Count > 1)
| > | > | > > >
| > | > | > > > this.ddlFundingSource.Items.Insert(0, new
| ListItem(string.Empty,
| > | > | > > > string.Empty));
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > else
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > FundingSourceVisible = false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void LoadProviders()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > int fiscalAgentId =
1;//fasFiscalAgent.SelectedFiscalAgentId;
| > | > | > > >
| > | > | > > > if(fiscalAgentId != int.MinValue)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > // ddlSites.Items.Add(new ListItem("help","1"));
| > | > | > > >
| > | > | > > > // ddlSites.Items.Add(new ListItem("me","2"));
| > | > | > > >
| > | > | > > >
| > | > | > > >
| > | > | > > > ProviderVisible = true;
| > | > | > > >
| > | > | > > > // are these dates correct???????????????????????????
| > | > | > > >
| > | > | > > > ddlProviders.DataSource =
| > FiscalAgentProvider.Find(fiscalAgentId,
| > | > new
| > | > | > > > DateTime(2005,7,1), new
| > | > | > > >
| > | > |
| > DateTime(2006,6,30));//rysReportingYearSelector.ReportingYearStartDate,
| > | > | > > > rysReportingYearSelector.ReportingYearEndDate); //
| > | > | > > >
| > | > | > > > ddlProviders.DataTextField = "ProviderName";
| > | > | > > >
| > | > | > > > ddlProviders.DataValueField = "ProviderId";
| > | > | > > >
| > | > | > > > ddlProviders.DataBind();
| > | > | > > >
| > | > | > > > ddlProviders.Items.Insert(0, new ListItem(string.Empty,
| > | > | string.Empty));
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > else
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > this.ddlProviders.Items.Clear();
| > | > | > > >
| > | > | > > > ProviderVisible = false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > // LoadSites();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void LoadSites()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ddlProviders.SelectedValue != string.Empty)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > // Load the Site search parameters.
| > | > | > > >
| > | > | > > > SiteFindArgs siteFindArgs=new SiteFindArgs();
| > | > | > > >
| > | > | > > > siteFindArgs.FiscalAgentId=1;
| > | > | > > > //Convert.ToInt32(fasFiscalAgent.SelectedFiscalAgentId);
| > | > | > > >
| > | > | > > > SiteVisible = true;
| > | > | > > >
| > | > | > > > ddlSites.DataSource = Business.Site.Find(siteFindArgs);
| > | > | > > >
| > | > | > > > ddlSites.DataTextField = "Name";
| > | > | > > >
| > | > | > > > ddlSites.DataValueField = "SiteId";
| > | > | > > >
| > | > | > > > ddlSites.DataBind();
| > | > | > > >
| > | > | > > > ddlSites.Items.Insert(0, new ListItem(string.Empty,
| > | string.Empty));
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > else
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > ddlSites.Items.Clear();
| > | > | > > >
| > | > | > > > SiteVisible = false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > // LoadClasses();
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > private void LoadClasses()
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ddlSites.SelectedValue != string.Empty)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > AdultEdClassFindArgs adultEdClassFindArgs = new
| > | > | AdultEdClassFindArgs();
| > | > | > > >
| > | > | > > > // adultEdClassFindArgs.FiscalAgentId =
| > | > | > > > Convert.ToInt32(fasFiscalAgent.SelectedFiscalAgentId);
| > | > | > > >
| > | > | > > > // adultEdClassFindArgs.ReportingYearStartDate =
| > | > | > > > rysReportingYearSelector.ReportingYearStartDate;
| > | > | > > >
| > | > | > > > // adultEdClassFindArgs.ReportingYearEndDate =
| > | > | > > > rysReportingYearSelector.ReportingYearEndDate;
| > | > | > > >
| > | > | > > > // adultEdClassFindArgs.ProviderName =
| > ddlProviders.SelectedValue;
| > | > | > > >
| > | > | > > > // adultEdClassFindArgs.SiteName = ddlSites.SelectedValue;
| > | > | > > >
| > | > | > > >
| > | > | > > > ClassVisible = true;
| > | > | > > >
| > | > | > > > ddlClasses.DataSource =
| AdultEdClass.Find(adultEdClassFindArgs);
| > | > | > > >
| > | > | > > > ddlClasses.DataTextField = "Name";
| > | > | > > >
| > | > | > > > ddlClasses.DataValueField = "ClassId";
| > | > | > > >
| > | > | > > > ddlClasses.DataBind();
| > | > | > > >
| > | > | > > > ddlClasses.Items.Insert(0, new ListItem(string.Empty,
| > | > string.Empty));
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > else
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > ddlClasses.Items.Clear();
| > | > | > > >
| > | > | > > > ClassVisible = false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > >
| > | > | > > >
| > | > | > > > #region Public Properties
| > | > | > > >
| > | > | > > > #region IReportParameterControl Members
| > | > | > > >
| > | > | > > > public object ParameterValue
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get{ return null; }
| > | > | > > >
| > | > | > > > set{ /*do nothing */ }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > public ParameterCollection Parameters
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get{ return parameters; }
| > | > | > > >
| > | > | > > > set{ parameters = value;}
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > #endregion
| > | > | > > >
| > | > | > > > protected bool FundingSourceVisible
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ViewState["FundingSourceVisible"] == null)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > return false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > return (bool)ViewState["FundingSourceVisible"];
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > set
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > TrackViewState();
| > | > | > > >
| > | > | > > > ViewState["FundingSourceVisible"] = value;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > protected bool ProviderVisible
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ViewState["ProviderVisible"] == null)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > return false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > return (bool)ViewState["ProviderVisible"];
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > set
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > TrackViewState();
| > | > | > > >
| > | > | > > > ViewState["ProviderVisible"] = value;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > protected bool SiteVisible
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ViewState["SiteVisible"] == null)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > return false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > return (bool)ViewState["SiteVisible"];
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > set
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > TrackViewState();
| > | > | > > >
| > | > | > > > ViewState["SiteVisible"] = value;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > protected bool ClassVisible
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > get
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > if(ViewState["ClassVisible"] == null)
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > return false;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > return (bool)ViewState["ClassVisible"];
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > set
| > | > | > > >
| > | > | > > > {
| > | > | > > >
| > | > | > > > TrackViewState();
| > | > | > > >
| > | > | > > > ViewState["ClassVisible"] = value;
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > #endregion
| > | > | > > >
| > | > | > > > #region Private Member Variables
| > | > | > > >
| > | > | > > > private DropDownList ddlFundingSource;
| > | > | > > >
| > | > | > > > private DropDownList ddlProviders;
| > | > | > > >
| > | > | > > > private DropDownList ddlSites;
| > | > | > > >
| > | > | > > > private DropDownList ddlClasses;
| > | > | > > >
| > | > | > > > private ParameterCollection parameters = new
| > | ParameterCollection();
| > | > | > > >
| > | > | > > > #endregion
| > | > | > > >
| > | > | > > > #region Private Constants
| > | > | > > >
| > | > | > > > private const string ReportingYearSelectorControlId =
| > | > | > > > "rysReportingYearSelector";
| > | > | > > >
| > | > | > > > private const string FiscalAgentSelectorControlId =
| > | > | > > > "fasFiscalAgentSelector";
| > | > | > > >
| > | > | > > > private const string FundingSourceControlId =
| > "ddlFundingSource";
| > | > | > > >
| > | > | > > > private const string FundingSourceLabelControlId =
| > | > "lblFundingSource";
| > | > | > > >
| > | > | > > > private const string ProvidersControlId = "ddlProviders";
| > | > | > > >
| > | > | > > > private const string ProvidersLabelControlId =
"lblProviders";
| > | > | > > >
| > | > | > > > private const string SitesControlId = "ddlSites";
| > | > | > > >
| > | > | > > > private const string SitesLabelControlId = "lblSites";
| > | > | > > >
| > | > | > > > private const string ClassesControlId = "ddlClasses";
| > | > | > > >
| > | > | > > > private const string ClassesLabelControlId = "lblClasses";
| > | > | > > >
| > | > | > > > #endregion
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > > }
| > | > | > > >
| > | > | > > >
builtin
| > | message
| > | > | > > > | > | > | > > > > Hi TS,
| > | > | > > > >
| > | > | > > > > See you again , seems you're rushing in a asp.net
project
| > | these
| > | > | > days?
| > | > | > > > > For the question you mentioned in this post, here are some
| of
| > my
| > | > | > > > > understanding and suggestions:
| > | > | > > > >
| > | > | > > > > 1. ASP.NET controls derived from Control will
automatically
| > | > maintain
| > | > | > its
| > | > | > > > > ViewStates according to the asp.net web page's events
| > sequence.
| > | So
| > | > | for
| > | > | > > > > composite control, those nested sub Controls' status
| > (properties
| > | > | which
| > | > | > > be
| > | > | > > > > persistd in Viewsstate ) will be store and retrieve
| > | automatically.
| > | > | > > > >
| > | > | > > > > 2. However, there're some thing we need to care when
| building
| > | > | > composite
| > | > | > > > > control:
| > | > | > > > > #remember to implement INamingContainer for controls which
| > will
| > | > have
| > | > | > > > nested
| > | > | > > > > sub controls. Otherwise, even handler mapping, ViewState
| > loading
| > | > | will
| > | > | > > > occur
| > | > | > > > > unexpectedly.
| > | > | > > > >
| > | > | > > > > #Do remember to assign a explicit ID for each sub
| > controls(same
| > | > | reason
| > | > | > > as
| > | > | > > > > #1). Also, please always try best to add subcontrols in
the
| > | > | > > > > "CreateChildControls" method(just create control
hierarchy)
| > and
| > | > put
| > | > | > > > > manipulating code in postback event or PreRender event.
| > | > | > > > >
| > | > | > > > > In addition, for your detaile scenario, I've justmicrosoft.public.dotnet.framework.aspnet.webcontrols,microsoft.public.dotneta
| very
| > | > | simple
| > | > | > > demo
| > | > | > > > > control which have three dropdownlists and The "Top" one
| will
| > | > | display
| > | > | > > > > first(other twos invisible) and according to the top one's
| > | > | selection,
| > | > | > > the
| > | > | > > > > "Mid" dropdownlist will be pouplated and the same when the
| > | "mid"'s
| > | > | > > > > selection changed......
| > | > | > > > >
| > | > | > > > > Here's the control's code for your reference:
| > | > | > > > >
| > | > | > > > > =========================
| > | > | > > > > [DefaultProperty("Text"),
| > | > | > > > > ToolboxData("<{0}:MultiListControl
| > | > | > > runat=server></{0}:MultiListControl>")]
| > | > | > > > > public class MultiListControl :
| > | > | System.Web.UI.WebControls.WebControl,
| > | > | > > > > INamingContainer
| > | > | > > > > {
| > | > | > > > > private string text;
| > | > | > > > >
| > | > | > > > > private DropDownList lstTop;
| > | > | > > > > private DropDownList lstMid;
| > | > | > > > > private DropDownList lstBot;
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > protected bool MidVisible
| > | > | > > > > {
| > | > | > > > > get{
| > | > | > > > > if(ViewState["MID_VISIBLE"] == null)
| > | > | > > > > {
| > | > | > > > > return false;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > return (bool)ViewState["MID_VISIBLE"];
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > set{
| > | > | > > > > TrackViewState();
| > | > | > > > > ViewState["MID_VISIBLE"] = value;
| > | > | > > > > }
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > protected bool BotVisible
| > | > | > > > > {
| > | > | > > > > get
| > | > | > > > > {
| > | > | > > > > if(ViewState["BOT_VISIBLE"] == null)
| > | > | > > > > {
| > | > | > > > > return false;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > return (bool)ViewState["BOT_VISIBLE"];
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > set
| > | > | > > > > {
| > | > | > > > > TrackViewState();
| > | > | > > > > ViewState["BOT_VISIBLE"] = value;
| > | > | > > > > }
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > [Bindable(true),
| > | > | > > > > Category("Appearance"),
| > | > | > > > > DefaultValue("")]
| > | > | > > > > public string Text
| > | > | > > > > {
| > | > | > > > > get
| > | > | > > > > {
| > | > | > > > > return text;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > set
| > | > | > > > > {
| > | > | > > > > text = value;
| > | > | > > > > }
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > protected override void CreateChildControls()
| > | > | > > > > {
| > | > | > > > > Controls.Clear();
| > | > | > > > >
| > | > | > > > > Controls.Add(
| > | > | > > > > new LiteralControl(
| > | > | > > > > @"
| > | > | > > > > <table width='100%'>
| > | > | > > > > <tr><td>
| > | > | > > > > "));
| > | > | > > > >
| > | > | > > > > lstTop = new DropDownList();
| > | > | > > > > lstTop.ID = "lstTop";
| > | > | > > > >
| > | > | > > > > lstTop.Items.Add("----------");
| > | > | > > > > lstTop.Items.Add("Top_Item_1");
| > | > | > > > > lstTop.Items.Add("Top_Item_2");
| > | > | > > > > lstTop.Items.Add("Top_Item_3");
| > | > | > > > > lstTop.Items.Add("Top_Item_4");
| > | > | > > > >
| > | > | > > > > Controls.Add(lstTop);
| > | > | > > > >
| > | > | > > > > Controls.Add(
| > | > | > > > > new LiteralControl(
| > | > | > > > > @"<br/>"
| > | > | > > > > ));
| > | > | > > > >
| > | > | > > > > lstMid = new DropDownList();
| > | > | > > > > lstMid.ID = "lstMid";
| > | > | > > > >
| > | > | > > > > Controls.Add(lstMid);
| > | > | > > > >
| > | > | > > > > Controls.Add(
| > | > | > > > > new LiteralControl(
| > | > | > > > > @"<br/>"
| > | > | > > > > ));
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > lstBot = new DropDownList();
| > | > | > > > > lstBot.ID = "lstBot";
| > | > | > > > >
| > | > | > > > > Controls.Add(lstBot);
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > Controls.Add(
| > | > | > > > > new LiteralControl(
| > | > | > > > > @"
| > | > | > > > > </td></tr>
| > | > | > > > > </table>
| > | > | > > > > "
| > | > | > > > > ));
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > lstTop.SelectedIndexChanged +=new
| > | > | > > EventHandler(lst_SelectedIndexChanged);
| > | > | > > > > lstMid.SelectedIndexChanged +=new
| > | > | > > EventHandler(lst_SelectedIndexChanged);
| > | > | > > > > lstBot.SelectedIndexChanged +=new
| > | > | > > EventHandler(lst_SelectedIndexChanged);
| > | > | > > > >
| > | > | > > > > lstTop.AutoPostBack = lstMid.AutoPostBack =
| > lstBot.AutoPostBack
| > | =
| > | > | > true;
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > protected override void OnPreRender(EventArgs e)
| > | > | > > > > {
| > | > | > > > > base.OnPreRender (e);
| > | > | > > > >
| > | > | > > > > lstMid.Visible = MidVisible;
| > | > | > > > > lstBot.Visible = BotVisible;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > private void lst_SelectedIndexChanged(object sender,
| > | > | System.EventArgs
| > | > | > e)
| > | > | > > > > {
| > | > | > > > >
| > | > | > > > > DropDownList lst = sender as DropDownList;
| > | > | > > > >
| > | > | > > > > switch(lst.ID)
| > | > | > > > > {
| > | > | > > > > case "lstTop":
| > | > | > > > >
| > | > | > > > > if(lst.SelectedIndex != 0)
| > | > | > > > > {
| > | > | > > > > lstMid.DataSource = GetSubItems(lst.SelectedValue);
| > | > | > > > > lstMid.DataTextField = "Text";
| > | > | > > > > lstMid.DataValueField= "Value";
| > | > | > > > > lstMid.DataBind();
| > | > | > > > >
| > | > | > > > > MidVisible = true;
| > | > | > > > > }
| > | > | > > > > else
| > | > | > > > > {
| > | > | > > > > MidVisible = BotVisible = false;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > break;
| > | > | > > > > case "lstMid":
| > | > | > > > >
| > | > | > > > > lstBot.DataSource = GetSubItems(lst.SelectedValue);
| > | > | > > > > lstBot.DataTextField = "Text";
| > | > | > > > > lstBot.DataValueField= "Value";
| > | > | > > > > lstBot.DataBind();
| > | > | > > > >
| > | > | > > > > MidVisible = BotVisible = true;
| > | > | > > > >
| > | > | > > > > break;
| > | > | > > > > case "lstBot":
| > | > | > > > >
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > break;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > Page.Response.Write("<br>" + lst.ID +
| > "_selectedindexchanged!" +
| > | > | > > > > lst.EnableViewState);
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > #region --Helper functions---
| > | > | > > > >
| > | > | > > > > public ListItemCollection GetSubItems(string parent)
| > | > | > > > > {
| > | > | > > > > ListItemCollection items = new ListItemCollection();
| > | > | > > > > int count = parent.Length;
| > | > | > > > >
| > | > | > > > > for(int i=0;i<count;++i)
| > | > | > > > > {
| > | > | > > > > items.Add(parent + "_Item_" + i);
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > return items;
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > #endregion
| > | > | > > > > }
| > | > | > > > >
| > | > | > > > > ========================
| > | > | > > > > Hope helps. Thanks,
| > | > | > > > >
| > | > | > > > > Steven Cheng
| > | > | > > > > Microsoft Online Support
| > | > | > > > >
| > | > | > > > > Get Secure! www.microsoft.com/security
| > | > | > > > > (This posting is provided "AS IS", with no warranties, and
| > | confers
| > | > | no
| > | > | > > > > rights.)
| > | > | > > > >
| > | > | > > > >
| > | > | > > > > --------------------
| > | > | > > > > | From: "TS" <[email protected]>
| > | > | > > > > | References: <[email protected]>
| > | > | > > > > | Subject: Re: explanation of when need to repopulate
| control
| > | > | > > > > | Date: Tue, 2 Aug 2005 18:32:23 -0500
| > | > | > > > > | Lines: 39
| > | > | > > > > | X-Priority: 3
| > | > | > > > > | X-MSMail-Priority: Normal
| > | > | > > > > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | > | > > > > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | > | > > > > | Message-ID: <[email protected]>
| > | > | > > > > | Newsgroups:
| > | > | > > > >
| > | > | > > >
| > | > | > >
| > | > | >
| > | > |
| > | >
| > |
| >
|| > | > | > > > > framework.aspnet.buildingcontrols
| > | > | > > > > | NNTP-Posting-Host: 103nat100.tea.state.tx.us
| 198.214.103.100
| > | > | > > > > | Path:
| > | > | > TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| > | > | > > > > | Xref: TK2MSFTNGXA01.phx.gbl
| > | > | > > > >
| microsoft.public.dotnet.framework.aspnet.buildingcontrols:3979
| > | > | > > > > microsoft.public.dotnet.framework.aspnet.webcontrols:10243
| > | > | > > > > | X-Tomcat-NG:
| > | > | > microsoft.public.dotnet.framework.aspnet.buildingcontrols
| > | > | > > > > |
| > | > | > > > > | sorry, heres the scenario i'm trying to accomplish:
| > | > | > > > > | I have a composite control that contains 4 drop down
| lists.
| > | When
| > | > | the
| > | > | > > > page
| > | > | > > > > | loads initially, i want the first drop down filled and
the
| > | rest
| > | > | > > > invisible.
| > | > | > > > > | When you select an item in this ddl, it posts back to
the
| > | server
| > | > | and
| > | > | > > > based
| > | > | > > > > | on its value, it populates its immediate child's drop
down
| > | list.
| > | > | So
| > | > | > > now
| > | > | > > > > the
| > | > | > > > > | top ddl has a value selected and the 2nd one just has
its
| > | items
| > | > | > > > populated.
| > | > | > > > > | Then when the 2nd drop down list gets selected, it posts
| to
| > | the
| > | > | > server
| > | > | > > > and
| > | > | > > > > | its value is used to populate(filter) the items for the
| 3rd
| > | drop
| > | > | > down
| > | > | > > > > | list...and so on for each drop down list.
| > | > | > > > > |
| > | > | > > > > | Please tell me what i need to do to handle post back
data
| > and
| > | > | > maintain
| > | > | > > > > state
| > | > | > > > > | from one postback to another while keeping the drop
| > downlists
| > | > | filled
| > | > | > > and
| > | > | > > > > | their values persisted.
| > | > | > > > > |
| > | > | > > > > | thank you again!
| > | > | > > > > |
| > | > | > > > > |
| > | > | > > > > | | > | > | > > > > | > I have a quesiton:
| > | > | > > > > | > if i have a composite control and on its intial page
| > | loading,
| > | > i
| > | > | > fill
| > | > | > > > my
| > | > | > > > > | (sub
| > | > | > > > > | > control) drop down list's items collection from the
| > database
| > | > and
| > | > | > > > return.
| > | > | > > > > | > When the user hits a button to cause postback, the
| control
| > | is
| > | > | > going
| > | > | > > to
| > | > | > > > > get
| > | > | > > > > | > initialized, then does its items collection that i
| filled
| > on
| > | > the
| > | > | > > > initial
| > | > | > > > > | > page request get repopulated from viewstate? And on
top
| of
| > | > that,
| > | > | > if
| > | > | > > > so,
| > | > | > > > > | does
| > | > | > > > > | > the list item that person selected in the drop down
list
| > | again
| > | > | set
| > | > | > > > > itself
| > | > | > > > > | as
| > | > | > > > > | > the selected item in the list?
| > | > | > > > > | >
| > | > | > > > > | > OR do i have to re-load the items on every page
request
| > and
| > | > then
| > | > | > > > > populate
| > | > | > > > > | > its value some other way???
| > | > | > > > > | >
| > | > | > > > > | > thanks a bunch
| > | > | > > > > | >
| > | > | > > > > | >
| > | > | > > > > |
| > | > | > > > > |
| > | > | > > > > |
| > | > | > > > >
| > | > | > > >
| > | > | > > >
| > | > | > >
| > | > | > >
| > | > | >
| > | > | >
| > | > |
| > | > |
| > | > |
| > | >
| > |
| > |
| > |
| >
|
|
|