Well, I can suggest something like this:
Example
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!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 setValue = function (field, value) {
var oldValue = field.getValue();
field.setValue(value);
if (oldValue !== value) {
field.fireEvent("change", field, value, oldValue);
}
};
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Button runat="server" Text="Change text:">
<Listeners>
<Click Handler="setValue(DisplayField1, 'Hello World!');" />
</Listeners>
</ext:Button>
<ext:DisplayField ID="DisplayField1" runat="server" Text="I'm first">
<Listeners>
<Change Handler="Ext.Msg.alert('Change', this.id + '<br/>' + oldValue + '<br/>' + newValue);" />
</Listeners>
</ext:DisplayField>
<ext:Button runat="server" Text="Change text:">
<Listeners>
<Click Handler="setValue(DisplayField2, 'Hello World!');" />
</Listeners>
</ext:Button>
<ext:DisplayField ID="DisplayField2" runat="server" Text="I'm second">
<Listeners>
<Change Handler="Ext.Msg.alert('Change', this.id + '<br/>' + oldValue + '<br/>' + newValue);" />
</Listeners>
</ext:DisplayField>
</form>
</body>
</html>
You might be also interested in overriding the Ext.form.DisplayField to encapsulate this functionality into the class.