webForumDet fria alternativet

Xml problem

.NET

6 svar · 420 visningar · startad av jazzil

Medlem sedan maj 2003151 inlägg
Frågan#1

Tjena...
Jag har lite XML problem ..

Jag har denna koden

	public void Page_Load(Object sender, EventArgs e)
	{						
		DataSet DS = new DataSet();
		DS.ReadXml(Server.MapPath(XmlFile));
		DataRow[] perst = DS.Tables[0].Select();
		
		foreach(DataRow dr in perst)
		{
			Name.Text = "Name: " + dr["Name"];
			Message.Text = "" + dr["Text"];
		}

	}

Den hemtar grejer i min XML fil och funkar som den ska ...
Men nu vill jag "bygga ut" lite så att den skirver ut alla records i XML filen ...

<?xml version="1.0" encoding="utf-8" ?> 
<Guestbook>
<Post>
	<Name>Björne</Name>
	<Text>Yo mannen va gö du</Text>
</Post>
<Post>
	<Name>Nicklas-Olif</Name>
	<Text>ey va fan</Text>
</Post>
<Post>
	<Name>Mekk</Name>
	<Text>Mekk mekkast mekkarest</Text>
</Post>
<Post>
	<Name>Writer</Name>
	<Text>Detta kommer att vara en ganska lång text som du fattar när du läser detta ... MAX 100 Tecken</Text>
</Post>
<Post>
	<Name>Tolof</Name>
	<Text>MM cookies</Text>
</Post>
<Post>
	<Name>Kim</Name>
	<Text>Hej kim cool grej</Text>
</Post>
</Guestbook>

Just nu skriver den bara ut:
Kim
Hej Kim cool grej

Hur gör jag det ... kolla på asp:repeater men fattade inte så mycket :\

Tacksam för svar

Medlem sedan juni 200032 967 inlägg
#2

Utan att kunna något om ASP.NET ger jag mig på en liten chansning. Det ser ut som att du hela tiden skriver över Name.Text och Message.Text med nya värden, därför ser du bara det sista. Prova detta:

		foreach(DataRow dr in perst)
		{
			Name.Text += "Name: " + dr["Name"] + "<br>";
			Message.Text += "" + dr["Text"] + "<br>";
		}

Mvh

Medlem sedan maj 2003151 inlägg
#3

Tack nu ska jag bara rensa lite ...

Fick outputten
Name: Björne
Name: Nicklas-Olif
Name: Mekk
Name: Writer
Name: Tolof
Name: Kim

Yo mannen va gö du
ey va fan
Mekk mekkast mekkarest
Detta kommer att vara en ganska lång text som du fattar när du läser detta ... MAX 100 Tecken
MM cookies
Hej kim cool grej

Inte riktigt rätt ... men jag klarar mig nog härifrån

TACK!

Medlem sedan jan. 20001 372 inlägg
#4

skapa en datagrid

<asp:DataGrid id="minDataGrid" runat="server" />

sen binder du datan från ditt dataset såhär:

public void Page_Load(Object sender, EventArgs e)
{						
	DataSet DS = new DataSet();
	DS.ReadXml(Server.MapPath(XmlFile));

	minDataGrid.DataSource = DS;
	minDataGrid.DataBind();
}

Borde fungera i alla fall.

Det är samma sak med repeater som med DataGrid.

Ta en titt på Quickstarten:
http://www.dotnetjunkies.com/QuickStart/aspplus/default.aspx?url=/quickstart/aspplus/doc/webdatalist.aspx

Medlem sedan maj 2003151 inlägg
#5

Tack!

Nu förstår jag lite bättre :)

En grej till hur gör jag så att varanan blir vit och varanan grå?

<ASP:Repeater id="dg" runat="server">       
      
      <HeaderTemplate>	
		<table width="200">     
      </HeaderTemplate>      
      
		<ItemTemplate>     	
			<tr style="background-color:#F2F2F2">
				<td>
					<i><%# DataBinder.Eval(Container.DataItem, "Name") %></i>
					<br />
					<%# DataBinder.Eval(Container.DataItem, "Text") %>
				</td>     
		</ItemTemplate>        
      
      <FooterTemplate>			
		</table>	
     </FooterTemplate>  

</ASP:Repeater>
Medlem sedan apr. 2004778 inlägg
#6

Lägg till en AlternatingItemTemplate som är likadan som din ItemTemplate men med annan bg-färg.

Medlem sedan maj 2003151 inlägg
#7

TACK!

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)