Hi Baidaly,
I tested your sample and it works; so after further investigating I found that the problem occurs when value and text strings are the same, as in my real code.
You can try with your example, just modify the multicombo and resx file this way:
<ext:MultiCombo runat="server" ID="mcState">
<Items>
<ext:ListItem Text="In Compilazione" Value="In Compilazione" meta:resourcekey="ListItem1Resource"/>
<ext:ListItem Text="In Attesa" Value="In Attesa" meta:resourcekey="ListItem2Resource"/>
<ext:ListItem Text="Approvato" Value="Approvato" meta:resourcekey="ListItem3Resource"/>
</Items>
</ext:MultiCombo>
In my project I have 3 resx files: one for it-IT language, one for en-US language, and the fallback resource, where localized strings are in english as well. If client has no italian or no en-US language selected, then fallback resource is used.
your modified resx file should be like this:
it-IT resx:
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ListItem1Resource.Text" xml:space="preserve">
<value>In Compilazione</value>
</data>
<data name="ListItem2Resource.Text" xml:space="preserve">
<value>In Attesa</value>
</data>
<data name="ListItem3Resource.Text" xml:space="preserve">
<value>Approvato</value>
</data>
</root>
en-US resx:
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ListItem1Resource.Text" xml:space="preserve">
<value>Not Compiled</value>
</data>
<data name="ListItem2Resource.Text" xml:space="preserve">
<value>In Approval</value>
</data>
<data name="ListItem3Resource.Text" xml:space="preserve">
<value>Approved</value>
</data>
</root>
fallback resx file is the same as en-US.
When looking at the output code with client in en-US language, multicombo is rendered this way:
<script type="text/javascript">
//<![CDATA[
Ext.net.ResourceMgr.init({id:"ResourceManager1",BLANK_IMAGE_URL:"/testextnet/WebResource.axd?d=mHns_zf9iA51vnwU4KqPOAmQneWZXn01TQCpnSzVe6oaTM52HCu6-K0zG1vTzEW5H79Ly_TtEKuZW9i3aS23MXP15X2uCClu0-d0M_ORfoA7_bIVn6GycJDX4zzx-9WnxVBFfqxJmxkXwa1BFh7A9s7CYFM1&t=634916295103582958",aspForm:"form1",theme:"gray",appName:"testextnet"});Ext.onReady(function(){Ext.QuickTips.init();new Ext.net.MultiCombo({id:"mcState",renderTo:"mcState_Container",displayField:"text",hiddenName:"mcState_Value",mode:"local",queryDelay:10,triggerAction:"all",valueField:"value",store:new Ext.data.SimpleStore({fields:["text","value"],data :[["Not Compiled","Not Compiled"],["In Approval","In Approval"],["Approved","Approved"]]}),submitValue:true});});
//]]>
</script>
As you can see, your resx file doesn't explicitly declare resource value for the "Value" attribute, and they are all overriden by the Text attribute.
I still don't understand why, in my production code, even after explicitly declaring "Value" values in my resx files, the first listitem behaves this way (text string overrides value string).
If it can point you to the right direction, the test with same values with the asp DropDownList, as suggested by Vladimir, works perfectly.
Any idea? Thanks again!