Ik heb een probleem met het opvangen van events...
ik heb een structuur vergelijkbaar met Mammaplank in deze post.
Het verschil zit hem hierin: de knop wordt aangemaakt in de Constructor, en in de Render-methode roep ik voor die knop verder alleen knop.RenderControl( writer ) aan.
Ik heb voor deze methode gekozen omdat er een control in deze control regelmatig vervangen moet worden (de knop blijft overigens bestaan)
Het control verwijderen en weer neerzetten werkt totaal niet zoals verwacht, dus de structuur in de constructor opzetten is geen optie.
ook na het initialiseren van de knop in de constructor toevoegen:
lijkt geen effect te hebben...
hierbij nog ff een deel van mijn test code:
(Er staat wel C++, maar het is natuurlijk C#...)
ik heb een structuur vergelijkbaar met Mammaplank in deze post.
Het verschil zit hem hierin: de knop wordt aangemaakt in de Constructor, en in de Render-methode roep ik voor die knop verder alleen knop.RenderControl( writer ) aan.
Ik heb voor deze methode gekozen omdat er een control in deze control regelmatig vervangen moet worden (de knop blijft overigens bestaan)
Het control verwijderen en weer neerzetten werkt totaal niet zoals verwacht, dus de structuur in de constructor opzetten is geen optie.
ook na het initialiseren van de knop in de constructor toevoegen:
C++:
1
| this.Controls.Add( this.button ); |
lijkt geen effect te hebben...
hierbij nog ff een deel van mijn test code:
C++:
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
| public class RenderTestControl : System.Web.UI.WebControls.Panel { private string text; private TextBox textBox; private Button button; public RenderTestControl() { this.button = new Button(); this.button.Click += new EventHandler(button_Click); this.Controls.Add( this.button ); this.textBox = new TextBox(); } protected override void Render(HtmlTextWriter writer) { this.RenderBeginTag( writer ); writer.AddAttribute( HtmlTextWriterAttribute.Width, "100%" ); writer.AddAttribute( HtmlTextWriterAttribute.Height, "100%" ); writer.RenderBeginTag( HtmlTextWriterTag.Table ); writer.RenderBeginTag( HtmlTextWriterTag.Tr ); writer.AddAttribute( HtmlTextWriterAttribute.Colspan, "2" ); writer.RenderBeginTag( HtmlTextWriterTag.Td ); writer.Write(Text); writer.RenderEndTag( ); writer.RenderEndTag( ); writer.RenderBeginTag( HtmlTextWriterTag.Tr ); writer.RenderBeginTag( HtmlTextWriterTag.Td ); this.textBox.RenderControl( writer ); writer.RenderEndTag( ); writer.RenderBeginTag( HtmlTextWriterTag.Td ); this.button.RenderControl( writer ); writer.RenderEndTag( ); writer.RenderEndTag( ); writer.AddAttribute( HtmlTextWriterAttribute.Height, "100%" ); writer.RenderBeginTag( HtmlTextWriterTag.Tr ); writer.AddAttribute( HtmlTextWriterAttribute.Colspan, "2" ); writer.RenderBeginTag( HtmlTextWriterTag.Td ); writer.RenderEndTag( ); writer.RenderEndTag( ); writer.RenderEndTag( ); this.RenderEndTag( writer ); } private void button_Click(object sender, EventArgs e) { this.text = this.textBox.Text; } } |
(Er staat wel C++, maar het is natuurlijk C#...)
I don't have a solution; but I do admire the problem.