[C#] Ajax Confirmbutton en Modalpopup event probleem

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Arise
  • Registratie: November 2007
  • Laatst online: 19-07-2022
Beste tweakers,

Ik heb een vreemd probleem met ajax, google zoeken levert niks op en ik zou het niet meer weten...

Bij een asp.net link voeg ik een confirmbutton en modalpopup toe. Wanneer ik op link1 klik en cancel en vervolgens op link2 klik en ok duw, wordt de event van link2 gefired en direct daarna de event van link1 :|

Wanneer ik het ajax gedeelte uitschakel werkt alles perfect.

Hieronder wat 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
tcel = new TableCell();
                    tcel.ColumnSpan = 1;
                    tcel.Width = Unit.Percentage(100);
                    tcel.Controls.Add(new LiteralControl("<img src=\"/Images/includes/ico/" + icons.HaalIcon(bijlage["FILENAME"].ToString().Trim().Substring(bijlage["FILENAME"].ToString().Trim().LastIndexOf(".") + 1)) + "\" border=\"0\" /> "));
                    //tcel.Text += bijlage["FILENAME"].ToString().Trim().Substring(0, bijlage["FILENAME"].ToString().LastIndexOf("."));
                    LinkButton lnk = new LinkButton();
                    lnk.ID = "Lnk" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    lnk.Text = bijlage["FILENAME"].ToString().Trim().Substring(0, bijlage["FILENAME"].ToString().LastIndexOf("."));
                    lnk.CssClass = "Normal";
                    lnk.Click += new EventHandler(lnk_Click);
                    tcel.Controls.Add(lnk);
                    tcel.Wrap = false;


                    AjaxControlToolkit.ModalPopupExtender mpe = new AjaxControlToolkit.ModalPopupExtender();
                    mpe.ID = "ModalPopupExtender" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    mpe.TargetControlID = "Lnk" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    mpe.PopupControlID = "PNL";
                    mpe.OkControlID = "ButtonOK";
                    mpe.CancelControlID = "ButtonCancel";
                    mpe.BackgroundCssClass = "modalBackground";
                    tcel.Controls.Add(mpe);

                    AjaxControlToolkit.ConfirmButtonExtender cbe = new AjaxControlToolkit.ConfirmButtonExtender();
                    cbe.ID = "ConfirmButtonExtender" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    cbe.TargetControlID = "Lnk" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    //cbe.OnClientCancel = "cancelClick";
                    cbe.DisplayModalPopupID = "ModalPopupExtender" + bijlage["K_ATTACHMENT"].ToString().Trim();
                    tcel.Controls.Add(cbe);



                    trij.Cells.Add(tcel);


vervolgens de event handler

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        void lnk_Click(object sender, EventArgs e)
        {
            int AttId = int.Parse(((LinkButton)sender).ID.Substring(3));

            DataRow attach = facade.HaalPublicationAttachmentByAttachmentId(AttId).Tables[0].Rows[0];

            System.IO.FileInfo fi = new System.IO.FileInfo(Request.PhysicalApplicationPath + "Attachments/Publications/" + K_PUBLICATION.ToString() + "_" + attach["FILENAME"].ToString().Trim());

            Response.Buffer = false;
            Response.ContentType = MimeType(fi.Name);
            Response.AddHeader("Content-Disposition", "attachment;filename=" + attach["FILENAME"].ToString().Trim());
            Response.TransmitFile(fi.FullName);
            Response.End();
        }

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:47

TeeDee

CQB 241

offtopic:
Waarom zoveel ToString() en Trim() gebruiken?
Vreemde Method namen: HaalPublicationAttachmentByAttachmentId zou ik GetPublicAttachmentById duidelijker vinden

Wat heb je al voor elkaar gekregen met een simpele, uitgeklede testcase?

Ik zie ook nergens de code voor 'link2'. Heb je aan 'link2' (wat dat ook mag zijn, ik weet de rest van de code niet) dezelfde event handler gehangen? Zo ja, zou je dan ook in de Event Handler niet controleren welke link er geklikt is?

Wat te denken trouwens van wat debug werk?

[ Voor 36% gewijzigd door TeeDee op 16-03-2009 22:51 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Probeer eens de volgorde van statements te veranderen. Eerst alle controls creëren, vervolgens deze toevoegen aan de control-tree, en daarna pas de events te koppelen aan de controls.

Ik weet niet op het de oorzaak van je probleem is maar ik weet wel dat het veel vreemde problemen kan veroorzaken als je eerst de events "hookt" en daarna pas de controls aan de control-tree toevoegd.