Toon posts:

[ASP.NET] Web custom control event wordt niet uitgevoerd

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een tabel waarin je een vraag moet ingeven en een aantal mogelijke antwoorden selecteren uit een dropdownlist

wanneer je een getal kiest via die dropdownlist, worden de huidige textboxes / labels / ... verwijderd, en wordt er een nieuwe tabel gemaakt met een aantal lege textboxes (volgens uw aantal gekozen antwoorden)

Daaronder staat een submit knop.
Aan die knop is een event gekoppeld die ik wil opvangn op mijn form.

Het probleem is dat wanneer ik op die submit knop klik, dan wordt die event niet uitgevoerd maar ik keer gewoon terug naar de vorige pagina (waarop de in te vullen vraag + hoeveel antwoorden dropdownlist staat.)

Iemand een idee waaraan dit zou kunnen liggen?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace WebCustomControls
{
    [ToolboxData("<{0}:WCCPollAntwoord runat=server></{0}:WCCPollAntwoord>")]
    public class WCCPollAntwoord : System.Web.UI.WebControls.WebControl, INamingContainer
    {
        Table tblPollVraag;
        DropDownList ddlAantalAntwoorden;

        public event EventHandler Submit;

        protected override void CreateChildControls()
        {
            //header poll toevoegen
            tblPollVraag = new Table();
            TableRow rij = new TableRow();
            TableCell cell = new TableCell();
            cell.ColumnSpan=2;
            cell.Text = "Poll toevoegen";

            rij.Controls.Add(cell);
            tblPollVraag.Controls.Add(rij);


            TableRow rij2 = new TableRow();
            //label Vraag
            TableCell cellVraag = new TableCell();
            Label lblVraag = new Label();
            lblVraag.ID = "lblVraag";
            lblVraag.Text = "PollVraag:";

            cellVraag.Controls.Add(lblVraag);
            rij2.Controls.Add(cellVraag);
            
            
            //texbox Vraag
            TableCell celltxtVraag = new TableCell();
            WCCTextbox txtVraag = new WCCTextbox();
            txtVraag.ID = "txtVraag";
            txtVraag.MaxLength = 50;

            celltxtVraag.Controls.Add(txtVraag);
            rij2.Controls.Add(celltxtVraag);

            tblPollVraag.Controls.Add(rij2);


            TableRow rij3 = new TableRow();
            
            //label aantal antwoorden
            TableCell celllblAntwoord = new TableCell();
            Label lblAantalAntwoorden = new Label();
            lblAantalAntwoorden.ID = "lblAantalAntwoorden";
            lblAantalAntwoorden.Text = "Aantal antwoorden:";
            celllblAntwoord.Controls.Add(lblAantalAntwoorden);

            rij3.Controls.Add(celllblAntwoord);



            //dropdownlist aantal antwoorden
            ddlAantalAntwoorden = new DropDownList();
            ddlAantalAntwoorden.ID = "ddlAantalAntwoorden";
            ddlAantalAntwoorden.AutoPostBack = true;

            for (int i = 1; i <= 10; i++){
                ddlAantalAntwoorden.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }

            TableCell cellddlAantal = new TableCell();

            //ddl event
            ddlAantalAntwoorden.SelectedIndexChanged +=new  EventHandler(ddlAantalAntwoorden_SelectedIndexChan
ged);
            //
            cellddlAantal.Controls.Add(ddlAantalAntwoorden);
            rij3.Controls.Add(cellddlAantal);

            tblPollVraag.Controls.Add(rij3);

            this.Controls.Add(tblPollVraag);
        }

        private void ddlAantalAntwoorden_SelectedIndexChanged(object sender, EventArgs e)
        {
//          this.Controls.Remove(tblPollVraag);
//
//          Button test = new Button();
//          test.Text = "testje";
//          test.ID ="tesjlk";
//          this.Controls.Add(test);
            this.Controls.Remove(tblPollVraag);

            Table tblPollAntwoord = new Table();

            for (int i = 1; i <= Convert.ToInt32(ddlAantalAntwoorden.SelectedValue); i++)
            {
                //labels
                Label lblAntwoord = new Label();
                lblAntwoord.ID = "lblAntwoord" + i;
                lblAntwoord.Text = "Antwoord" + i;

                TableCell cell = new TableCell();
                cell.Controls.Add(lblAntwoord);
                
                //Textboxen
                WCCTextbox txtAntwoord = new WCCTextbox();
                txtAntwoord.ID = "txtAntwoord" + i;
                txtAntwoord.MaxLength = 50;
                TableCell cell2 = new TableCell();
                cell2.Controls.Add(txtAntwoord);

                //requiredfieldvalidators
                RequiredFieldValidator rfvAntwoord = new RequiredFieldValidator();
                rfvAntwoord.ID = "rfvAntwoord" + i;
                rfvAntwoord.ControlToValidate = txtAntwoord.ID;
                rfvAntwoord.ErrorMessage = "(*)";
                cell.Controls.Add(rfvAntwoord);

                TableRow rij = new TableRow();
                rij.Controls.Add(cell);
                rij.Controls.Add(cell2);
                tblPollAntwoord.Controls.Add(rij);
            }

            //submit button maken
            TableRow knoprij = new TableRow();
            TableCell knopcell = new TableCell();
            knopcell.ColumnSpan = 2;

            Button btnSubmit = new Button();
            btnSubmit.Text = "Poll toevoegen";
            btnSubmit.ID = "btnSubmit";
            //event instellingen
            btnSubmit.Click += new EventHandler(btnSubmit_Click);

            knopcell.Controls.Add(btnSubmit);
            knoprij.Controls.Add(knopcell);
            tblPollAntwoord.Controls.Add(knoprij);
            this.Controls.Add(tblPollAntwoord);
        }

        private void btnSubmit_Click(object sender, EventArgs e) 
        {
            this.OnSubmit(EventArgs.Empty);
        }

        protected virtual void OnSubmit(EventArgs e) 
        {
            if (Submit != null) 
            {
                Submit(this, e);
            }
        }
    }
}

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Al geprobeerd met breakpoints te zetten wat er waar gebeurd? En ik gok dat de state niet onthouden wordt, vergeet dat hij op de nieuwe pagina zit en dus teruggaat naar de oude pagina.

Verder mag je imho ook wel om je probleem te isoleren een kleinere pagina aanmaken met wat relevante code; 160 regels code doorkijken zonder comments hebben weinig mensen echt trek in.

[ Voor 34% gewijzigd door gorgi_19 op 19-03-2004 19:46 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:27

.oisyn

Moderator Devschuur®

Demotivational Speaker

P&W FAQ - debuggen!!

Dat doen wij niet voor je

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.