Got it.
When you call
ComboBox1.SelectedItem.Text = "Item2";
it sets ComboBox value to "item2", not just its text.
You should select an item by its index or value, i.e:
this.ComboBox1.SelectedIndex = 1;
or
this.ComboBox1.SelectedItem.Value = "2";
Example
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
Store store = this.ComboBox1.GetStore();
store.DataSource = new object[]
{
new object[] { "1", "item1" },
new object[] { "2", "item2" },
new object[] { "3", "item3" }
};
store.DataBind();
}
}
protected void Select(object sender, DirectEventArgs e)
{
this.ComboBox1.SelectedIndex = 1;
}
protected void Get(object sender, DirectEventArgs e)
{
X.Msg.Alert("Value", this.ComboBox1.SelectedItem.Value).Show();
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Ext.NET Example</title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:ComboBox ID="ComboBox1" runat="server">
<Store>
<ext:Store runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="value" />
<ext:RecordField Name="text" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
<ext:Button runat="server" Text="Select the 2nd item" OnDirectClick="Select" />
<ext:Button runat="server" Text="Get SelectedItem.Value" OnDirectClick="Get" />
</form>
</body>
</html>