Obtenir les Valeurs dans GridView zone de texte TemplateField

J'ai un asp.net la page par Défaut.aspx, et c'est la page principale du Site.maître. Dans le Défaut.aspx, j'ai ajouté un gridview avec 3 lié aux données des champs et 1 Templatefield, et puis, traîné une zone de texte à l'intérieur de ce templatefield.

Obtenir les Valeurs dans GridView zone de texte TemplateField

Je vais essayer d'obtenir la zone de texte les valeurs pour chaque ligne dans ce gridview, à l'aide de la méthode FindControl, mais elle retourne Rien.

Voici le code que j'utilise pour récupérer ces valeurs:

For Each gvr As GridViewRow In GridView1.Rows

        Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
        Dim txt As String = tb.Text
        MsgBox(txt)

    Next

Note: je suis en utilisant masterPages, et je pense que c'est à l'origine du problème.

[modifier]

Dans l'événement Page_load, lié à la gridview, je suis en utilisant le code:

        GridView1.DataSource = f.xDa
        GridView1.DataBind()

Dans le Bouton1, j'ai ajouté le code:

For Each gvr As GridViewRow In GridView1.Rows

        Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
        Dim txt As String = tb.Text
        MsgBox(txt)

    Next

Mais je suis Toujours une zone de texte vide.

Merci tout le monde!

  • Où êtes-vous appeler ce code? Si le contrôle GridView n'est pas lié aux données pourtant, il ne sera probablement pas quelque chose à montrer. En outre, le fait que le code de jeter une erreur, ou avez-vous simplement obtenir une chaîne vide dans le MsgBox?
  • Oui, le contrôle Gridview fonctionne très bien, avec le code: GridView1.DataSource = f.xDa GridView1.DataBind() Mais, quand je tape l'intérieur de zones de texte, je ne peux pas obtenir les valeurs à l'intérieur d'eux.... Dans ce cas, je reçois une chaîne vide dans la boîte de messages.
  • À l'intérieur de ce que l'événement est le code dans votre question exécuté?
  • Dans le Page_Load: GridView1.DataSource = f.xDa GridView1.DataBind() Dans un Bouton Button1 j'ai mis le code: <code> Pour Chaque gvr Comme GridViewRow Dans GridView1.Les lignes Dim tuberculose en tant Que zone de texte = DirectCast(gvr.FindControl("TextBox1"), une zone de texte) Dim txt as String = tb.Texte MsgBox(txt) Suivant <code>
  • Veuillez utiliser le bouton "éditer" pour mettre à jour votre question avec le code pertinent. C'est trop dur à comprendre dans les commentaires ici =)
  • Fait! Merci!