2009-11-04 4 views
2

J'écris une application ASP.NET dans laquelle une table d'objets est créée par l'utilisateur côté client. Je les envisage en cliquant sur "Ajouter un article" et une nouvelle "ligne" est créée dans le tableau avec des zones de texte pour qu'ils entrent dans leurs affaires.Ajout de contrôle ASP.NET à la page à l'aide de jQuery

Je peux le faire très bien en ajoutant du HTML avec jQuery. Le problème est que l'un des champs de la ligne que l'utilisateur doit remplir doit être un sélecteur de couleur.

J'ai un contrôle utilisateur Web ASP.NET pour mon sélecteur de couleurs. Comment puis-je ajouter une instance à la page dans ma ligne html? Ou suis-je aboyant le mauvais arbre ici - est-ce qu'il ya une meilleure façon d'encapsuler la fonctionnalité de mon sélecteur de couleur de sorte qu'il peut être mis sur chaque rangée?

Répondre

2

Non, vous ne pouvez pas ajouter un contrôle asp.net côté serveur vers une page qui a déjà été rendue en utilisant des techniques côté client (alias Javascript)

Deux options:

  1. Tout d'abord , passez à l'utilisation d'un sélecteur de couleurs côté client. Vous pouvez ensuite avoir les données de cette inclusion dans le post-retour en ajoutant dynamiquement des champs cachés à votre formulaire.
  2. Deuxièmement, ayez un seul panneau d'édition qui inclut votre sélecteur de couleurs. Les utilisateurs puis sélectionnez une ligne à modifier, qui met à jour le panneau d'édition avec les valeurs actuelles, etc. Les valeurs sont stockées dans des champs cachés créés lorsque vous ajoutez dynamiquement des lignes à votre table, et inclus dans le post-retour

Sans voir votre UI, je ne peux pas commenter ce qui serait le mieux. Le contrôle asp.net peut sembler plus beau, mais il peut être difficile de travailler sur votre conception. Une solution purement côté client pourrait mieux convenir à votre concepteur, mais pourrait ne pas être aussi bonne. Vous devez également tenir compte de ce qui se passe si/quand un utilisateur ajoute lots de lignes (cela peut être 10, 50 ou 100 selon votre app/code). Beaucoup de contrôles ajoutés dynamiquement (la première solution) peuvent paralyser les performances de la page.

0

Vous ne pouvez pas ajouter de contrôles ASP.NET avec jQuery (du moins pas facilement). Vous pouvez toutefois effectuer une publication lorsque vous devez ajouter le sélecteur de couleur à la ligne.

0

Dans le code qui précède, définissez de manière déclarative un modèle de ce à quoi doit ressembler la nouvelle ligne, puis cachez-la en utilisant css. Lorsque l'utilisateur clique sur le bouton 'Ajouter un nouveau bouton', sélectionnez et cliquez sur le contenu de votre modèle caché et écrivez-le dans votre div cible. Assurez-vous simplement d'enlever le cache CSS lorsque vous faites cela.

Vous, bien sûr, juste copier le code html rednered de vos contrôles serveur, mais SITS apporach peut vous donner un moyen rapide et facile de faire ce que vous avez besoin

1

Je ne sais pas quelle version d'ASP .NET que vous utilisez, une approche qui fonctionnerait est de transformer votre usercontrol en custom control. Vous devrez alors implémenter ICallbackEventHandler (la première façon de faire Ajax sur asp.net); c'est sûr que c'est un peu plus de travail mais ça vous donne un bon niveau de contrôle.

Vous pouvez également essayer this

Questions connexes