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:
- ajouter EnableVIewState="true" pour la zone de texte & répéteur.
- Dont appel dataBind() avant d'obtenir les valeurs.
Merci!
OriginalL'auteur Easyrider | 2011-12-09
Vous devez vous connecter pour publier un commentaire.
Vous devez définir EnableViewState à 'true' pour linkbuttons pour fonctionner correctement dans un répéteur
Oh, je vois, j'ai été dupé par le cliquez sur le nom de la méthode. De toute façon, la même réponse devrait fonctionner. Les valeurs des zones de texte à l'intérieur d'un répéteur ne seront pas disponibles sur une poastback sauf EnableViewState=true.
Il ne marche pas.
Est votre createUserDef appel d'une méthode sur le post de retour, avant que votre code s'exécute? Si oui, il overwites posté le retour des valeurs avec les valeurs d'origine de la base de données.
Merci man! C'était le problème.. en Fait, j'ai lu sur internet que vous devez lier le relais une fois de plus. C'est pourquoi appelle la fonction..
OriginalL'auteur Ray