Hallo Peter, nachfolgend mal alle Methoden, die ich benutze/ ändere.
Ich vergebe die ID vor dem anhängen des Handlers.
private DropDownList ddlView;
private DropDownList ddlYear;
private DropDownList ddlAdType;
private DropDownList ddlVariable;
private Table table;
private LinkButton lbtShow;
private string[] Monate = { "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" };
private string[] Tage = { "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" };
protected override void OnInit(EventArgs e)
{
this.Title = "Werbeverwaltung";
base.OnInit(e);
}
protected override void CreateChildControls()
{
//Ansichten erstellen
this.ddlView = new DropDownList();
ddlView.ID = "ddlView";
ddlView.Items.Add(new ListItem("Jahresansicht", "yearly", true));
ddlView.Items.Add(new ListItem("Quartalsansicht", "quarter"));
ddlView.Items.Add(new ListItem("Monatsansicht", "monthly"));
ddlView.SelectedIndexChanged += new EventHandler(ddlView_SelectedIndexChanged);
ddlView.EnableViewState = true;
this.Controls.Add(this.ddlView);
//Jahr erstellen
this.ddlYear = new DropDownList();
#region ddlYear füllen
for (int x = 2003; x <= DateTime.Now.Year + 1; x++)
{
ListItem NewItem = new ListItem(x.ToString(), x.ToString());
if (x == DateTime.Now.Year)
{
NewItem.Selected = true;
}
ddlYear.Items.Add(NewItem);
}
#endregion
this.ddlView.AutoPostBack = true;
this.Controls.Add(this.ddlYear);
//Werbetypen erstellen
this.ddlAdType = new DropDownList();
ddlAdType.ID = "ddlAdType";
ddlAdType.Items.Add(new ListItem("alle", "all", true));
ddlAdType.Items.Add(new ListItem("Mailings", "mailings"));
ddlAdType.Items.Add(new ListItem("Rest", "tail"));
this.Controls.Add(this.ddlAdType);
//variables ListView erstellen
this.ddlVariable = new DropDownList();
this.Controls.Add(this.ddlVariable);
//Linkbutton
this.lbtShow = new LinkButton();
lbtShow.Text = "Anzeigen";
lbtShow.Click += new EventHandler(lbtShow_Click);
this.Controls.Add(this.lbtShow);
//Table
this.table = new Table();
Controls.Add(this.table);
}
protected override void RenderContents(HtmlTextWriter writer)
{
ddlView.RenderControl(writer);
ddlYear.RenderControl(writer);
ddlVariable.RenderControl(writer);
ddlAdType.RenderControl(writer);
lbtShow.RenderControl(writer);
table.RenderControl(writer);
}
void ddlView_SelectedIndexChanged(object sender, EventArgs e)
{
switch (this.ddlView.SelectedItem.Value)
{
case "1":
this.ddlVariable.Visible = false;
break;
case "2":
this.ddlVariable.Visible = true;
this.ddlVariable.Items.Clear();
for (int x = 1; x <= 4; x++)
{
int QuartalStart = (((x - 1) * 3) + 1);
ListItem NewItem = new ListItem(Monate[QuartalStart - 1] + " bis " + Monate[QuartalStart + 1], QuartalStart.ToString());
if (DateTime.Now.Month >= QuartalStart && DateTime.Now.Month <= QuartalStart + 2)
{
NewItem.Selected = true;
}
this.ddlVariable.Items.Add(NewItem);
}
ddlVariable.DataBind();
break;
case "3":
this.ddlVariable.Visible = true;
this.ddlVariable.Items.Clear();
for (int x = 1; x <= 12; x++)
{
ListItem NewItem = new ListItem(Monate[x - 1], x.ToString());
if (DateTime.Now.Month == x)
{
NewItem.Selected = true;
}
this.ddlVariable.Items.Add(NewItem);
}
ddlVariable.DataBind();
break;
}
}