2010-11-01 19 views
0

Fondamentalement, j'ai une zone de texte où un utilisateur peut entrer un ID à partir d'une base de données. Pour faciliter les choses, l'utilisateur peut faire apparaître une GridView en utilisant un ModalPopupExtender pour afficher toutes les colonnes de la table, et sélectionner une ligne, qui ferme ensuite modalpopupextender et définit la zone de texte à la colonne ID de la ligne.ModalPopupExtender - popup gridview, permet à l'utilisateur de sélectionner la ligne et de remplir la zone de texte avec les détails des colonnes

Jusqu'à présent, j'ai ceci:

 protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string testing = GridView1.SelectedRow.Cells[1].Text.ToString(); 
     ((TextBox)dtlsInsert.FindControl("txtNom")).Text = GridView1.SelectedRow.Cells[1].Text.ToString(); 
    } 

La chaîne « testing » devient peuplé, mais il ne semble pas remplir la zone de texte txtNom. Aussi, comment est-ce que je ferme le modalpopupextender programatically?

Merci

+0

Est-ce que 'GridView1' et' txtNom' sont dans le même 'UpdatePanel'? –

+0

Non, la zone de texte txtNom se trouve dans la page principale. – Chris

Répondre

1

Si GridView1 (et probablement son récipient Panel et associé ModalPopupExtender) réside dans un UpdatePanel, mais txtNom n'a pas, txtNom ne seront pas actualisés par postbacks partielles déclenchées par GridView1.

Il existe plusieurs façons de résoudre ce problème:

  • Si vous le pouvez, mettre txtNom et GridView1 dans le même UpdatePanel.

  • Mettez txtNom dans un autre UpdatePanel qui a sa propriété UpdateMode mis à Always. Effectuer une publication complète en enregistrant GridView1 comme PostBackTrigger dans votre UpdatePanel.

En ce qui concerne votre deuxième question, ModalPopupExtender expose Show() et Hide() méthodes sur le côté du serveur, ainsi que similaires show() et hide() méthodes sur le côté client.

+0

Ah je vois, merci - j'ai décidé de poster juste quand on est choisi. – Chris