<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.14.3">
</HEAD>
<BODY>
In the actual release, a simple ASP.NET with a ListBox Control don't work, viewstate deserialization problem...<BR>
<BR>
This problem as been fixed in the trunk by :<BR>
<BR>
2007-08-30 Igor Zelmanovich &lt;<A HREF="mailto:igorz@mainsoft.com">igorz@mainsoft.com</A>&gt;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * ListControl.cs: fixed selected items state management.<BR>
<BR>
Could this be backported to the mono 1.2.5 branch?<BR>
<BR>
<BR>
Here's a test case for this problem :<BR>
<BR>
Default.aspx:<BR>
&lt;%@ Page Language=&quot;C#&quot; Inherits=&quot;TestViewState.Default&quot; %&gt;<BR>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;<A HREF="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</A>&quot;&gt;<BR>
&lt;html&gt;<BR>
&lt;head&gt;<BR>
        &lt;title&gt;Default&lt;/title&gt;<BR>
&lt;/head&gt;<BR>
&lt;body&gt;<BR>
        &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;<BR>
                &lt;asp:Button id=&quot;button1&quot; runat=&quot;server&quot; /&gt; <BR>
                &lt;asp:ListBox id=&quot;drpSociete&quot; runat=&quot;server&quot; CssClass=&quot;TextBox200&quot; Width=&quot;200px&quot; Visible=&quot;True&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rows=&quot;1&quot;&gt;&lt;/asp:ListBox&gt;<BR>
        &lt;/form&gt;<BR>
&lt;/body&gt;<BR>
&lt;/html&gt;<BR>
<BR>
<BR>
Default.aspx.cs :<BR>
// Default.aspx.cs created with MonoDevelop<BR>
// User: hubert at 15:02 31/08/2007<BR>
//<BR>
// To change standard headers go to Edit-&gt;Preferences-&gt;Coding-&gt;Standard Headers<BR>
//<BR>
<BR>
using System;<BR>
using System.Web;<BR>
using System.Web.UI;<BR>
using System.Web.UI.WebControls;<BR>
using System.Data;<BR>
<BR>
namespace TestViewState<BR>
{<BR>
        <BR>
        <BR>
        public class Default : Page<BR>
        {<BR>
                protected ListBox drpSociete;<BR>
                <BR>
                <BR>
                protected override void OnLoad(EventArgs e)<BR>
                {<BR>
                        if (!IsPostBack){<BR>
                                drpSociete.Items.Add(&quot;bouh&quot;);<BR>
                                drpSociete.Items.Add(&quot;bah&quot;);<BR>
                        }<BR>
                }<BR>
                <BR>
                <BR>
        }<BR>
}<BR>
<BR>
<BR>
Click two times on the button and you'll obtain :<BR>
<B><FONT SIZE="6">Server Error in '/' Application</FONT></B><BR>

<HR>

<H2>
<B><I><FONT SIZE="5">Index is less than 0 or more than or equal to the list count. Parameter name: index 0</FONT></I></B>
</H2>
<B>Description: </B>Error processing request.<BR>
<BR>
<B>Error Message: </B>HTTP 500. System.ArgumentOutOfRangeException: Index is less than 0 or more than or equal to the list count. Parameter name: index 0<BR>
<BR>
<B>Stack Trace: </B><BR>
<BR>
<TABLE>
<TR>
<TD>
<PRE>
System.ArgumentOutOfRangeException: Index is less than 0 or more than or equal to the list count.
Parameter name: index
0
  at System.Collections.ArrayList.get_Item (Int32 index) [0x00000] 
  at System.Web.UI.WebControls.ListItemCollection.get_Item (Int32 index) [0x00000] 
  at System.Web.UI.WebControls.ListControl.LoadViewState (System.Object savedState) [0x00000] 
  at System.Web.UI.Control.LoadViewStateRecursive (System.Object savedState) [0x00000] 
  at System.Web.UI.Control.LoadViewStateRecursive (System.Object savedState) [0x00000] 
  at System.Web.UI.Control.LoadViewStateRecursive (System.Object savedState) [0x00000] 
  at System.Web.UI.Page.LoadPageViewState () [0x00000] 
  at System.Web.UI.Page.InternalProcessRequest () [0x00000] 
  at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00000] 
</PRE>
</TD>
</TR>
</TABLE>
<BR>
<BR>
Thanks in advance!<BR>
<BR>
_______________________________________________<br>Ce message et les éventuels documents joints peuvent contenir des informations confidentielles.<br>Au cas où il ne vous serait pas destiné, nous vous remercions de bien vouloir le supprimer et en aviser immédiatement l'expéditeur. Toute utilisation de ce message non conforme à sa destination, toute diffusion ou publication, totale ou partielle et quel qu'en soit le moyen est formellement interdite.<br>Les communications sur internet n'étant pas sécurisées, l'intégrité de ce message n'est pas assurée et la société émettrice ne peut être tenue pour responsable de son contenu.</BODY>
</HTML>