2010-01-09 6 views
5

J'ajoute dynamiquement des contrôles de saisie HTML sur la page via un bouton "Ajouter une zone de texte" mais après la publication, ils sont finalement supprimés. Y at-il une pratique facile et bonne qui peut m'aider à garder les contrôles et leurs valeurs après la page de retour.Conserver les contrôles html créés par programmation après la publication

Merci.

Edit:

  • J'utilise Javascript pour créer des contrôles dynamiques sur la page
  • Je ne traite pas avec Uploads de fichiers, ce qui crée juste des choses sur le terrain personnalisé.

Je pense que je dois remplacer les événements SaveViewState et LoadViewState pour conserver mes contrôles dans ViewState.

+0

-vous ajouter les contrôles d'entrée en utilisant javascript ou C#? –

+0

@Madi: J'utilise Javascript pour ajouter des contrôles sur la page. – Tarik

Répondre

2

Voir suivants:
http://urenjoy.blogspot.com/2009/02/add-dynamic-buttons-and-handle-click.html
Vous avez besoin de remplacer les méthodes SaveViewState et LoadViewState pour sauver après la publication, voir exemple suivant de
http://urenjoy.blogspot.com/2009/03/create-dynamic-dropdownlists-in-aspnet.html
et Pour récupérer la valeur voir l'exemple suivant:
http://urenjoy.blogspot.com/2009/02/retrieve-value-of-dynamic-controls-in.html

+0

Merci pour les recommandations, je vais les vérifier maintenant. J'espère pouvoir trouver la réponse là-bas. – Tarik

0

puisque vous les recevrez à la publication, ne pourriez-vous pas les recréer dynamiquement au niveau du serveur?

+0

C'est aussi ce que je pensais mais comme c'est une technique assez courante, je pensais qu'il y avait peut-être une autre et meilleure façon de le faire. – Tarik

+0

Les collections de contrôle pour les pages de mon entreprise sont presque entièrement intégrées dans le code-behind, car nous devons prendre en charge les dispositions définissables par l'utilisateur. Je pense que l'idée de Gaby fonctionnera bien, mais vous pouvez rencontrer des conflits avec les contrôles ajoutés dynamiquement et le viewstate. Si vous rencontrez ce problème ou non dépendra de la façon dont votre page est utilisée. –

+1

Ensuite, le framework MVC fonctionnerait mieux pour votre entreprise que Web Forms. – Tarik

0

Si les commandes diffèrent de postback à postbck en fonction de ce que l'utilisateur entre alors vous pouvez stocker le code html ito une classe séparée où vous aurez des propriétés statiques comme public static string WriteHTMLSubmit = ""

Si pas alors les coder en dur dans le code derrière, ceci étant le plus pratique ... if(page.isPostBack){<write contrls>}

2

Gardez la page! Utilisez ajax pour publier les données, et un téléchargeur flash si vous traitez des téléchargements de fichiers. Ensuite, la page ne s'actualise jamais et il y a beaucoup moins de code pour refaire les contrôles créés dynamiquement.

+0

Je pensais la même chose mais la page est énorme donc ce ne serait pas une bonne pratique d'utiliser Ajax je pense. Ils sont trop de données postées sur le serveur. Et je ne suis pas en train de faire des téléchargements, ce que je fais c'est créer des champs personnalisés et envoyer les valeurs aux données avec les autres valeurs. – Tarik

Questions connexes