21. november 2005 - 08:00
Der er
8 kommentarer og 1 løsning
datagrid og hashtable
hej, hvordan får jeg puttet data fra en hashtable i et datagrid?
Annonceindlæg fra HP
Slettet bruger
21. november 2005 - 08:29
#1
<asp:DataGrid AutoGenerateColumns=False id="DataGrid1" runat="server"> <Columns > <asp:TemplateColumn HeaderText="HashTable"> <ItemTemplate> <%# Container.DataItem.Key %> <br> <%# Container.DataItem.Value %> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> 'In Page_Load Dim ht As New Hashtable() ht.Add("emp1", "A") ht.Add("emp2", "B") ht.Add("emp3", "C") DataGrid1.DataSource = ht DataGrid1.DataBind()
21. november 2005 - 08:40
#2
ja, det har jeg også selv fundet på nettet, men jeg forstår åbenbart ikke at bruge det. Som du ved fra det andet spørgsmål, har jeg nu et datagrid med ord og tal som key og value pairs, dette hashtable hedder wordcontainer... Jeg må lige have lidt mere info
21. november 2005 - 08:42
#3
...forresten er det c# vi taler om her.
Slettet bruger
21. november 2005 - 08:46
#4
datagrid.DataSource = wordcontainer; Nøglen er AutoGenerateColumns=False på datagrid. Hvilken fejl får du ? BTW er det ASP.NET du skal bruge det i ?
21. november 2005 - 08:50
#5
jeps, det er en webapp. Jeg har sat AutoGenerateColumns til false, men der kommer ikke noget i datagrid'et. Der er ellers data i hashtablen.
21. november 2005 - 08:51
#6
Denne her udskriver fint indholdet i hashtabellen, jeg skal bare have det ind i datagrid'et: foreach(string z in wordcontainer.Keys) { Response.Write("\n<br>" + z + " " + wordcontainer[z]); }
21. november 2005 - 08:59
#7
Har du husket at kalde metoden DataBind for din DataGrid objekt efter at du har angivet DataSource.
21. november 2005 - 09:06
#8
ja, det virker dog hvir jeg opretter objekter med key,value pairsne og smider i en arraylist i mellemtiden, det virker bare lidt besværligt. foreach(string z in wordcontainer.Keys) { //Response.Write("\n<br>" + z + " " + wordcontainer[z]); finalwords.Add(new Wordnumber(z, (int)wordcontainer[z])); } DataGrid1.DataSource = null; DataGrid1.DataSource = finalwords; DataGrid1.DataBind();
Slettet bruger
21. november 2005 - 09:15
#9
I ASPX fil: <asp:DataGrid id="_CtlWords" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# GetKeyValue(Container.DataItem)%> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> I onLoad : if(! this.IsPostBack) { Hashtable wordcontainer = new Hashtable(); wordcontainer.Add("Fisk", 10); wordcontainer.Add("Banan", 2); wordcontainer.Add("Ost", 12); wordcontainer.Add("Appelsin", 1); _CtlWords.DataSource = wordcontainer; _CtlWords.DataBind(); } Helper: protected string GetKeyValue(object dataitem) { DictionaryEntry de = (DictionaryEntry)dataitem; return String.Format("{0}=>{1}", de.Key, de.Value); }
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.