Toon posts:

ASP.NET meerdere Imagebuttons in datagrid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer 2 imagebuttons in een datagrid te plaatsen.
De ene imagebutton bevat javascript code om een nieuw venster te openen, de andere bevat javascript code om een waarde terug te geven naar window.opener

Wanneer ik slechts gebruik maak van 1 imagebutton, dan wordt de javascript code uitgevoerd.
Wanneer ik deze 2 imagebuttons probeer te gebruiken, dan wordt gewoon een postback gegenereed maar de javascript code wordt door geen enkele van de imagebuttons uitgevoerd.
Nochtans zijn beide types imagebuttons identificeerbaar door hun commandname...
Hopelijk kan iemand mij verderhelpen..

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
                //FUNCTIE om ImageButton 1 toe te voegen (wordt opgeroepen bij ItemCreated event van de datagrid)
        private void AddImgBtnInfo(DataGridItemEventArgs e)
        {
            ImageButton btn = new ImageButton();
            btn.ImageUrl = "../graphics/info.gif";

            TableCell cell = e.Item.Cells[0];
            btn.EnableViewState = true;
            btn.ToolTip = "Bekijk de bedrijfsinfo"; 
            btn.ID = "btnInfo" + e.Item.ItemIndex.ToString();
            btn.CommandName = "info";
            cell.HorizontalAlign = HorizontalAlign.Right;
            
            cell.Controls.Add(btn);
        }
                //FUNCTIE om ImageButton 2 toe te voegen (wordt opgeroepen bij ItemCreated event van de datagrid)
        private void AddImgBtnKies(DataGridItemEventArgs e)
        {
            ImageButton btn = new ImageButton();
            btn.ImageUrl = "../graphics/edit.gif";

            TableCell cell = e.Item.Cells[0];
            btn.EnableViewState = true;
            btn.ToolTip = "Selecteer dit bedrijf"; 
            btn.ID = "btnKies" + e.Item.ItemIndex.ToString();
            btn.CommandName = "kies";
            cell.HorizontalAlign = HorizontalAlign.Right;
            
            cell.Controls.Add(btn);
        }


        private void dgBedrijven_PreRender(object sender, System.EventArgs e)
        {
            foreach(DataGridItem dgItem in dgBedrijven.Items)
            {
                Control c = dgItem.FindControl(dgItem.ItemIndex.ToString());
                if (c is ImageButton)
                {
                    ImageButton btn = (ImageButton) c;
                    if (btn.CommandName == "info")
                    {
                        //datagridItem ophalen 
                        DataGridItem dgItem2 = dgBedrijven.Items[dgItem.ItemIndex];

                        string javascript = "window.open('bedrijfInfo.aspx?aanbiederID=" + dgBedrijven.DataKeys[dgItem.ItemIndex].ToString() + "');";
                        btn.Attributes.Add("onClick", javascript);
                    }
                    
                    else if (btn.CommandName == "kies")
                    {
                        DataGridItem dgItem2 = dgBedrijven.Items[dgItem.ItemIndex];
                        System.Diagnostics.Debug.WriteLine("bedrijfselectie");
                        string javascript = "window.opener.getSelectieInfo('" + dgBedrijven.DataKeys[dgItem.ItemIndex].ToString() + "', '" + dgItem2.Cells[1].Text + "');";
                        javascript       += "window.close();";
                        btn.Attributes.Add("onClick", javascript);
                    }
                }
            }
        }