I had to do this for a client so I thought I would share it.
Here's some code to create a character counter for your text/memo boxes.
Note: I used KeyUp because TextChanged only fires when you LEAVE the control.
Note the use of GetText() to get the content. I struggled (stupidly!) with this trying to use the Javascript s.text property. The controls have their own javascript methods. GetText and SetText.
<dxe:ASPxMemo ID="txtInfo" runat="server" Width="100%" Height="76px">
<ClientSideEvents KeyUp="function(s,e){
var ele = s.GetText();
lblInfo.SetText(ele.length + '/4000 characters left');}" />
</dxe:ASPxMemo>
<dxe:ASPxLabel ID="ASPxLabel1" ClientInstanceName="lblInfo" runat="server" Text="(maximum 4000 chars)">
</dxe:ASPxLabel>
Hope you find it useful. If you have another way, please post it!