Bonjour,

Voici un exemple tout simple d'une texbox dont le texte est changé via une méthode settée sur l'évènement TextChanged.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:PlaceHolder runat ="server" ID="plMain">
                        <asp:TextBox runat="server" ID="tbTest1" AutoPostBack="True" 
                ontextchanged="tbTest1_TextChanged"></asp:TextBox>
            </asp:PlaceHolder>
 
        </ContentTemplate>
 
    </asp:UpdatePanel>
</form>
Cela fonctionne très bien.
Mon but est de reproduire le même comportement via du code behind.

Voici le code behind de la page précédente :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
        protected TextBox tbTest2;
 
        protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);
 
            tbTest2 = new TextBox();
            tbTest2.AutoPostBack = true;
            tbTest2.BackColor = Color.Green;
            plMain.Controls.Add(tbTest2);
            tbTest2.TextChanged += new EventHandler(tbTest2_TextChanged);
 
        }
 
        void tbTest2_TextChanged(object sender, EventArgs e)
        {
            this.tbTest2.Text = "Test2";
        }
        protected void tbTest1_TextChanged(object sender, EventArgs e)
        {
            this.tbTest1.Text = "Test1";
        }
Mon problème, c'est qu'il y a un postback dès que je modifie le texte de ma "tbTest2".
Le but étant bien sur d'éviter ce comportement grace à l'Ajax

Quelqu'un serait-il me venir en aide ?

Merci d'avance.