P
Paul
Hi all,
I have a very simple user control that contains 3 drop downs. Whenever
there's a postback the values of these drop downs are lost. I've tried
enabling viewstate everywhere without success. Could anyone shed any
light on what's going wrong?
Thanks,
Paul
Asx:
<%@ Control Language="C#" EnableViewState="true" AutoEventWireup="true"
CodeFile="DayMonthYear.ascx.cs" Inherits="Test.DayMonthYear" %>
<%@ Register TagPrefix="test" Namespace="Test" %>
<table cellpadding="1" cellspacing="0">
<tr>
<td><small>Day</small></td>
<td><small>Month</small></td>
<td><small>Year</small></td>
</tr>
<tr>
<td><aspropDownList ID="day" EnableViewState="true"
runat="server"></aspropDownList></td>
<td><aspropDownList ID="month" EnableViewState="true"
runat="server"></aspropDownList></td>
<td><aspropDownList ID="year" EnableViewState="true"
runat="server"></aspropDownList></td>
</tr>
</table>
Asx.Cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Test
{
public partial class DayMonthYear : System.Web.UI.UserControl,
INamingContainer
{
private int _yearHigh = DateTime.Now.Year;
private int _yearLow = DateTime.Now.Year - 100;
protected void Page_PreRender(object sender, EventArgs e)
{
string[] months = new string[] { "January", "February", "March",
"April", "May", "June", "July", "August", "September", "October",
"November", "December" };
// add days
day.Items.Add(new ListItem(string.Empty, "0"));
for (int i = 1; i < 32; i++)
day.Items.Add(i.ToString());
// add months
month.Items.Add(new ListItem(string.Empty, "0"));
for (int i = 0; i < months.Length; i++)
month.Items.Add(new ListItem(months, (i + 1) + string.Empty));
// add years
year.Items.Add(new ListItem(string.Empty, "0"));
for (int i = YearLow; i <= YearHigh; i++)
year.Items.Add(i.ToString());
}
public int YearHigh
{
get { return _yearHigh; }
set { _yearHigh = value; }
}
public int YearLow
{
get { return _yearLow; }
set { _yearLow = value; }
}
}
}
I have a very simple user control that contains 3 drop downs. Whenever
there's a postback the values of these drop downs are lost. I've tried
enabling viewstate everywhere without success. Could anyone shed any
light on what's going wrong?
Thanks,
Paul
Asx:
<%@ Control Language="C#" EnableViewState="true" AutoEventWireup="true"
CodeFile="DayMonthYear.ascx.cs" Inherits="Test.DayMonthYear" %>
<%@ Register TagPrefix="test" Namespace="Test" %>
<table cellpadding="1" cellspacing="0">
<tr>
<td><small>Day</small></td>
<td><small>Month</small></td>
<td><small>Year</small></td>
</tr>
<tr>
<td><aspropDownList ID="day" EnableViewState="true"
runat="server"></aspropDownList></td>
<td><aspropDownList ID="month" EnableViewState="true"
runat="server"></aspropDownList></td>
<td><aspropDownList ID="year" EnableViewState="true"
runat="server"></aspropDownList></td>
</tr>
</table>
Asx.Cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Test
{
public partial class DayMonthYear : System.Web.UI.UserControl,
INamingContainer
{
private int _yearHigh = DateTime.Now.Year;
private int _yearLow = DateTime.Now.Year - 100;
protected void Page_PreRender(object sender, EventArgs e)
{
string[] months = new string[] { "January", "February", "March",
"April", "May", "June", "July", "August", "September", "October",
"November", "December" };
// add days
day.Items.Add(new ListItem(string.Empty, "0"));
for (int i = 1; i < 32; i++)
day.Items.Add(i.ToString());
// add months
month.Items.Add(new ListItem(string.Empty, "0"));
for (int i = 0; i < months.Length; i++)
month.Items.Add(new ListItem(months, (i + 1) + string.Empty));
// add years
year.Items.Add(new ListItem(string.Empty, "0"));
for (int i = YearLow; i <= YearHigh; i++)
year.Items.Add(i.ToString());
}
public int YearHigh
{
get { return _yearHigh; }
set { _yearHigh = value; }
}
public int YearLow
{
get { return _yearLow; }
set { _yearLow = value; }
}
}
}