Domanda

ho bisogno di essere in grado di impostare (che è all'interno di una riga GridView) il testo di una casella di testo per una certa stringa in fase di esecuzione. Ho usato FindControl prima, ma non riesco a capire la sintassi per davvero impostare il valore della casella di testo, piuttosto che solo ottenere. Ecco quello che ho, che non può essere compilato:

((TextBox)e.Row.FindControl("txtPath")).Text = dataMap.GetString("targetPath"));

sarei grato per qualsiasi aiuto

Grazie

È stato utile?

Soluzione

Sarà questo lavoro?

(e.Row.FindControl("txtPath") as TextBox).Text = dataMap.GetString("targetPath");

EDIT: In realtà io come questo è meglio che il mio post originale:

TextBox txtPath = (TextBox)e.Row.FindControl("txtPath");

if(txtPath != null) 
    txtPath.Text = dataMap.GetString("targetPath");

Altri suggerimenti

Il motivo non lo fa di compilazione è perché sembra che si dispone di una parentesi di chiusura supplementare sul fine della funzione GetString ().

Prova questo:

((TextBox)e.Row.FindControl("txtPath")).Text = dataMap.GetString("targetPath"); 

E 'buona norma verificare che il TextBox non è nullo, ma non è necessario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top