Databind inte datalisten vid tillbakapostningar. Det löser problemet.
Jag skrev ett minimalt test. I detta fall behålls viewstate för samtliga dropdownlistor. Om detta exempel inte återspeglar ditt problem ber jag om ursäkt.
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string sql = "select top 10, * from tblanvändare";
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxx.mdb");
OleDbCommand command = new OleDbCommand(sql, conn);
DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql,conn);
adapter.Fill(dt);
DataList1.DataSource = dt;
DataList1.DataBind();
}
}
private void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
ArrayList lista = new ArrayList();
lista.Add(1);
lista.Add(2);
lista.Add(3);
lista.Add(4);
DropDownList dd = (DropDownList)e.Item.FindControl("DropDownList1");
dd.DataSource = lista;
dd.DataBind();
}
private void Button1_Click(object sender, System.EventArgs e)
{
//knapp som orsakar postback
}