Ajout de textbox dynamiquement

Résolu
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 21 juin 2007 à 13:18
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 28 juin 2007 à 09:56
Salut a tous

Voila j'ai une interface à réaliser en Asp.Net/C# pour de la saisie.
Dans cette interface, le client doit pouvoir ajouter des Textbox dynamiquement en cliquant sur un lien. 

voila un ex :





<hr />


Textbox1

>------ lien Inserer une textbox ------<

Textbox2

>------ lien Inserer une textbox ------<

Textbox3



<hr />







lorsque le client clique sur un lien on obtient

<hr />
Textbox1

Texbox1bis

Textbox2

>------ lien Inserer une textbox ------<

Textbox3





<hr />

est ce que quelqu'un à une idée pour faire ça.?

Merci

2 réponses

izords Messages postés 20 Date d'inscription samedi 27 avril 2002 Statut Membre Dernière intervention 4 mars 2013
27 juin 2007 à 23:00
Voici une méthode possible

Dans le aspx mettre :
<

form
id="form1"
runat="server">

<div>

<asp:Table
ID="tblControls"
runat="server"></asp:Table>

</div>

</form>
Voici le .cs

using

System;
using

System.Data;
using

System.Configuration;
using

System.Collections;
using

System.Web;
using

System.Web.Security;
using

System.Web.UI;
using

System.Web.UI.WebControls;
using

System.Web.UI.WebControls.WebParts;
using

System.Web.UI.HtmlControls;
using

System.Collections.Generic;
public

partial
class
Default : System.Web.UI.
Page{

   private
Dictionary<
string,
string> dic_Controls;

   protected
void Page_Load(
object sender,
EventArgs e)   {

   }

   protected
void Page_PreLoad(
object sender,
EventArgs e)   {

      if (!IsPostBack)         drawControls(4);

      else         redrawControls();

   }

   void oLinkButton_Click(
object sender,
EventArgs e)   {

      dic_Controls[((

LinkButton)sender).ID] =
"TextBox";      ViewState[

"mydic_Controls"] = dic_Controls;      SaveViewState();

      redrawControls();

      }

   

private
void drawControls(
int nbrItem)   {

      tblControls.Rows.Clear();

      dic_Controls =

new
Dictionary<
string,
string>();

      for (
int i = 1; i <= nbrItem; i++)      {

         TextBox oTextBox =
new
TextBox();         oTextBox.ID =

"TextBox" + i.ToString();         AddRow(oTextBox);

         dic_Controls.Add(oTextBox.ID,

"TextBox");

         LinkButton oLinkButton =
newLinkButton();         oLinkButton.ID "TextBoxbis" + i.ToString();         oLinkButton.Text

"Ajouter un TextBox";         oLinkButton.Click +=

new
EventHandler(oLinkButton_Click);         AddRow(oLinkButton);

         dic_Controls.Add(oLinkButton.ID,

"LinkButton");      }

      ViewState[

"mydic_Controls"] = dic_Controls;      SaveViewState();

   }

   private
void redrawControls()   {

      tblControls.Rows.Clear();

      dic_Controls = (

Dictionary<
string,
string>)ViewState[
"mydic_Controls"];

      foreach (
KeyValuePair<
string,
string> key
in dic_Controls)      {

      switch (key.Value)      {

         case
"TextBox":

            TextBox oTextBox =
new
TextBox();            oTextBox.ID = key.Key;

            oTextBox.Text =

String.IsNullOrEmpty(Request.Form[oTextBox.ID]) ?
"" : Request.Form[oTextBox.ID];            AddRow(oTextBox);

            break;

      case
"LinkButton":

            LinkButton oLinkButton =
new
LinkButton();            oLinkButton.ID = key.Key;

            oLinkButton.Text =

"Ajouter un TextBox";            oLinkButton.Click +=

new
EventHandler(oLinkButton_Click);            AddRow(oLinkButton);

            break;      }

   }

   }

private
void AddRow(
Control obj){

TableCell cell =
new
TableCell();cell.Controls.Add(obj);

TableRow row =
new
TableRow();row.Cells.Add(cell);

tblControls.Rows.Add(row);

}

}
3
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
28 juin 2007 à 09:56
merci pour ton aide izords
0
Rejoignez-nous