2010-05-14 10 views
5

ho aggiunto alcune caselle di testo per GridView utilizzando seguente codiceasp: textbox GridView tornare sempre valore vuoto

<asp:TemplateField HeaderText="STD<br/>ID"> 
     <ItemStyle BackColor="LightBlue" /> 
      <ItemTemplate> 
      <div style="font-size:xx-small; overflow:hidden;"> 
      <asp:TextBox ID="txtStandard" EnableViewState="true" Height="10" Font-Size="XX-Small" Width="50" Text='<%# bind("STANDARD_ID") %>' runat="server"></asp:TextBox> 
     <asp:AutoCompleteExtender ID="AutoCompleteExtenderDemo" runat="server" 
      TargetControlID="txtStandard" ServiceMethod="GetCompletionList" 
      MinimumPrefixLength="1" CompletionInterval="1000" 
      EnableCaching="true" CompletionSetCount="20"> 
     </asp:AutoCompleteExtender> 
         </div> 



        </ItemTemplate> 
       </asp:TemplateField> 

voglio salvare valori aggiornati al database, ma quando provo a valori di accesso utilizzando

string strs = ((TextBox)TwoHeadedGridView1.Rows[0].FindControl("txtStandard")).Text; 

Mi restituisce sempre il valore vuoto per tutte le righe, La stessa cosa accade per l'elenco a discesa mi restituisce il valore originariamente selezionato cioè il valore selezionato al momento della scrittura del menu a discesa, non ci sono ID duplicati presenti sul mio modulo asp, Questo è il mio Prima interazione con la personalizzazione di gridview, voglio in qualche modo farlo girare,

Qualcuno mi può suggerire eventuali correzioni ...

ho controllato che qualsiasi ID duplicato è presente in essa o no,

+0

A che punto stai cercando di ottenere il valore aggiornato? –

+0

Ho pulsante di invio che chiama la funzione lato server che chiama il controllo find di gridviewrow – Xinus

risposta

4

ho trovato la soluzione a questo problema qui: http://www.eggheadcafe.com/software/aspnet/29602882/gridview--cant-get-text.aspx

Ricordate che la pagina web è fondamentalmente una cosa senza stato!

Quando i vostri GridView genera un evento, il metodo di Page_Load esegue e poi il metodo che gestisce l'evento GridView esegue. Non riesco ancora a credere ai miei occhi, ma sembra che anche se assegni manualmente i valori dall'origine dati GridView ai tuoi TextBox, il valore digitato dall'utente viene cancellato quando viene eseguito il metodo GridView.DataBind.

Insomma, se il codice è come la mia, ci sono queste due righe di codice nel vostro Page_Load metodo:

myGridView.DataSource = someDataSet;
myGridView.DataBind();

Per risolvere questo problema, modificare al seguente: (! IsPostBack)

se
{
myGridView.DataSource = someDataSet;
myGridView.DataBind();
}

A proposito, io lavoro in VB.net, quindi per favore fatemelo sapere che mi sono convertito a C# in modo corretto per voi. Voglio sentire che questo funziona anche per te!

0

Dove stai cercando di accedere a tali valori? Se si accede a loro nella funzione RowUpdated, i valori saranno vuoti. Accedile durante lo RowUpdating e assicurati di annullare l'aggiornamento.

+0

Credo di avere un problema identico a una pagina su cui sto lavorando e di sicuro accedo ai valori del metodo che gestisce l'evento 'RowUpdating' . –

Problemi correlati