Hi,
In this case you should override the setValue method.
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)
{
this.Store1.DataSource = new object[]
{
new object[] { "TextField", "DropDownField"}
};
this.Store1.DataBind();
}
}
</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>
<script type="text/javascript">
var mySetValue = function (value, text, collapse) {
if (this.mode === "text") {
collapse = text;
text = value;
} else {
text = "some text based on the value: " + value;
}
Ext.net.DropDownField.superclass.setValue.apply(this, [text]);
this.getUnderlyingValueField().setValue(value);
if (!this.isExpanded()) {
this.syncValue(value, text);
}
if (collapse !== false) {
this.collapse();
}
return this;
};
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:FormPanel
ID="FormPanel1"
runat="server"
Width="300"
DefaultAnchor="100%"
HideLabels="true">
<Items>
<ext:TextField runat="server" DataIndex="TextField" />
<ext:DropDownField
runat="server"
DataIndex="DropDownField"
Mode="ValueText">
<Component>
<ext:TreePanel runat="server">
<Root>
<ext:TreeNode Text="Root" />
</Root>
</ext:TreePanel>
</Component>
<Listeners>
<BeforeRender Handler="this.setValue = mySetValue.createDelegate(this);" />
</Listeners>
</ext:DropDownField>
</Items>
</ext:FormPanel>
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="TextField" />
<ext:RecordField Name="DropDownField" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
<ext:Button runat="server" Text="Load a record">
<Listeners>
<Click Handler="FormPanel1.getForm().loadRecord(Store1.getAt(0));" />
</Listeners>
</ext:Button>
</form>
</body>
</html>