se non ho capito male, la classe Tool_Rect si occupa di gestire i cambiamenti e le operazioni da fare sull'interfaccia (la situazione è "simile" ad un Model-View-Presenter).
il metodo changeButton deve cambiare il nome ad un bottone, ma vedo che fai anche la renderizzazione. e questo non mi piace molto.
Dovresti utilizzare la CallbackResult non per restituire il codice HTML generato, ma per restituire la pagina cambiata.
Il rendering deve rimanere gestito dalla pagina stessa.
Se hai necessità particolari per le quali devi per forza (anche se secondo me è sbagliato) generare il codice HTML nella tua classe, dobbiamo trovare un'altra soluzione.
codice:
public void ServerAction(ESRI.ArcGIS.ADF.Web.UI.WebControls.ToolEventArgs tool)
{
Map map= (Map) tool.Control;
Page page = map.Page;
this.changeButton(ref page);
//a questo punto hai la pagina con il testo del bottone cambiato
// cosa fa la new CallbackResult?
}
private void changeButton(ref Page page)
{
Button pulsante = (Button)page.FindControl("btnOrdina");
pulsante.Text = "txt modificato";
}