Hallo,
Met de hulp van dit artikel probeer ik zelf een uitklapbare, geneste gridview te maken.
De bedoeling is dat er 3 gridviews zijn, adhv deze structuur:
Domeinen (1ste gridview) bevatten criteria (2de gridview) die op hun beurt ook subcriteria (3de gridview) kunnen bevatten.
Ik heb daarom de code in het artikel aangepast om tot de volgende structuur te bekomen:

Op bovenstaande afbeeldingen zijn alle zaken uitgeklapt waarbij dat mogelijk is. Het werkt niet zoals het hoort, elk 'id' heeft nl. volgende code erachter zitten die soms elkaar overlapt...
javascript:expandcollapse('div3','one') --> Dit overlapt voor 'Wat is zijn kennis van het onderwijssysteem' en 'karakter vd persoon' waardoor deze niet goed in/uitklappen.
In mijn .aspx heb ik dus de 3 gridviews in elkaar genest, met hierbij de stukjes code die van belang zijn:
En in GridView1 en 2 zit er in elke itemtemplate deze code. (wel natuurlijk 'domeinid' aangepast naar 'criteriaid' voor de 2de GridView')
En dit in de .cs erachter gebruik ik dit:
en
Het probleem is volgens mij dat sommige elementen dezelfde naam vertonen waardoor de javascript niet correct functioneert. (De subcriteria is namelijk niet zichtbaar in de gridview, maar een kijkje in de broncode van de webpagina toont dat hij wel aanwezig is...)
Weet er iemand waar het precies fout gaat? Het aanpassen van de code in de GridView2_RowDataBound naar bv. 'expandcollapse2('div2" lijkt ook niet de oplossing.
Bedankt
Met de hulp van dit artikel probeer ik zelf een uitklapbare, geneste gridview te maken.
De bedoeling is dat er 3 gridviews zijn, adhv deze structuur:
Domeinen (1ste gridview) bevatten criteria (2de gridview) die op hun beurt ook subcriteria (3de gridview) kunnen bevatten.
Ik heb daarom de code in het artikel aangepast om tot de volgende structuur te bekomen:

Op bovenstaande afbeeldingen zijn alle zaken uitgeklapt waarbij dat mogelijk is. Het werkt niet zoals het hoort, elk 'id' heeft nl. volgende code erachter zitten die soms elkaar overlapt...
javascript:expandcollapse('div3','one') --> Dit overlapt voor 'Wat is zijn kennis van het onderwijssysteem' en 'karakter vd persoon' waardoor deze niet goed in/uitklappen.
In mijn .aspx heb ik dus de 3 gridviews in elkaar genest, met hierbij de stukjes code die van belang zijn:
JavaScript:
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
| <script language="javascript" type="text/javascript"> function expandcollapse(obj, row) { var div = document.getElementById(obj); var img = document.getElementById('img' + obj); if (div.style.display == "none") { div.style.display = "block"; if (row == 'alt') { img.src = "minus.gif"; } else { img.src = "minus.gif"; } img.alt = "Sluit om andere domeinen te tonen."; } else { div.style.display = "none"; if (row == 'alt') { img.src = "plus.gif"; } else { img.src = "plus.gif"; } img.alt = "Klap uit om criteria te tonen."; } } </script> |
En in GridView1 en 2 zit er in elke itemtemplate deze code. (wel natuurlijk 'domeinid' aangepast naar 'criteriaid' voor de 2de GridView')
ASP:
1
2
3
4
5
6
7
8
9
10
| .... <Columns> <asp:TemplateField> <ItemTemplate> <a href="javascript:expandcollapse('div<%# Eval("domeinid") %>', 'one');"> <img id="imgdiv<%# Eval("domeinid") %>" alt="Domeinen tonen of verbergen"<%# Eval("domeinid") %>" width="9px" border="0" src="plus.gif"/> </a> </ItemTemplate> </asp:TemplateField> ... |
En dit in de .cs erachter gebruik ik dit:
ASP:
1
2
3
| protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) ..... ClientScript.RegisterStartupScript(GetType(), "Expand", "<SCRIPT LANGUAGE='javascript'>expandcollapse('div" + ((DataRowView)e.Row.DataItem)["domeinid"].ToString() + "','one');</script>"); |
en
ASP:
1
2
3
| protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) ..... ClientScript.RegisterStartupScript(GetType(), "Expand", "<SCRIPT LANGUAGE='javascript'>expandcollapse('div" + ((DataRowView)e.Row.DataItem)["criteriaid"].ToString() + "','one');</script>"); |
Het probleem is volgens mij dat sommige elementen dezelfde naam vertonen waardoor de javascript niet correct functioneert. (De subcriteria is namelijk niet zichtbaar in de gridview, maar een kijkje in de broncode van de webpagina toont dat hij wel aanwezig is...)
Weet er iemand waar het precies fout gaat? Het aanpassen van de code in de GridView2_RowDataBound naar bv. 'expandcollapse2('div2" lijkt ook niet de oplossing.
Bedankt
[ Voor 159% gewijzigd door DenDries op 15-04-2011 13:56 ]