obtenir la valeur de zone de texte à l'intérieur de répéteur asp.net c#

J'ai essayé de le faire fonctionner pour un couple d'heures maintenant, mais rien de google pourrait m'aider à résoudre le problème.

J'ai une question très simple répéteur de contrôle:

   <asp:Panel ID="userDefDiv" Visible="false" runat="server">
                <asp:Repeater ID="userDefRepeater" EnableViewstate="false" runat="server">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="false"></asp:TextBox><br/>
                    </ItemTemplate>
                </asp:Repeater>
            </asp:Panel>

la userDefDiv panneau est à l'intérieur d'un autre groupe, qui est à l'intérieur de contentPLaceHolder.
le panneau parent à userDefDiv n'ont PAS le "enableviewstate="false"".

.
Tout sur cette page qui se passe après une couple de linkbuttons_click. si rien ne se passe pendant page_load. Et après je clique sur un autre linkbutton je veux obtenir des données provenant de différentes zones de texte qui est dans la répétition.

De code C#:

C'est le code pour créer tous la répétition des éléments.

public void createUserDef()
{
        DataTable userDefData;
        userDefData = ..... (data from Database.)

            userDefDiv.Visible = true;
            userDefRepeater.DataSource = userDefData;
            userDefRepeater.DataBind();
}

Le code de la linkbutton:

protected void linkButton_Click(object sender, EventArgs e)
{
    createUserDef();

    Label2.Visible = true;
    foreach (RepeaterItem item in userDefRepeater.Items)
    {
        TextBox box = (TextBox)item.FindControl("TextBox1");
        string b = box.Text;
        Label2.Text += b + " . ";
    }
}

Comme vous le voyez j'ai créer le relais une fois de plus lors du clic. Mais la seule chose que je peux lire dans label2. est un un certain nombre de " .", sur un point pour chaque zone de texte.
mais le texte de la textbox est vide..
Ce que je fais mal??

merci pour la lecture!
Mattias

SOLUTION:

  1. ajouter EnableVIewState="true" pour la zone de texte & répéteur.
  2. Dont appel dataBind() avant d'obtenir les valeurs.

Merci!

OriginalL'auteur Easyrider | 2011-12-09