si sei sulla giusta strada!!!
il problema riguarda la gestione degli eventi e il caricamento dei dati negli oggetti che compongo la pagina.
Mi spiego meglio, una pagina asp.net ha un ciclo di vita determinato da degli eventi che si succedono uno dopo l'altro.
Ora quando esegui l'evento click del button avviene un postback alla pagina, durante il quale vengono rieseguiti alcuni eventi della pagina prima che l'evento onclick del button sia eseguito.
gli eventi in questione sono il Page_init e il Page_Load, quindi dato che il caricamento dei dati viene fatto sicuramente in uno di questi due eventi avviene che quando premi il button i valori rivengono ricaricati e nell'evento click vedi cosi quelli precedenti e non quelli che hai inserito te dall'interfaccia
Devi cercare dove viene fatto il caricamento è includere le istruzioni di caricamento in questo codice
esempio C#
codice:if (!Page.isPostBack) { // Codice che effettua il caricamento dei valori nella pagina }