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 Systematic 
 
 
	
		
								
				 
				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.