"Jesper Stocholm" <spam200205@stocholm.dk> skrev i en meddelelse
news:Xns921891F18C479spamstocholmdk@130.226.1.34...
> <% do while not rs.EOf %>
Hvis du ønsker at bruge en løkke til at løbe igennem dine data skal det
gøres ved at bruge en datareader som dette her(Med Data.Sql namespacet):
System.Text.StringBuilder sb = new System.Text.StringBuilder();
SqlDataReader objDataReader = objComm.ExecuteReader(
CommandBehavior.CloseConnection );
sb.Append("<table>");
while( objDataReader.Read()){
sb.Append("<tr>");
sb.Append("<td>" + objDataReader.getString(0) + "</td>");
....
}
Response.Write( sb.ToString() );
Jeg har i ovenstående valgt at bruge en Stringbuilder da man oftest vil
outputte sådan data til en contol af en slags.
> Jeg vil altså gerne mixe data og html imens jeg løber igennem data.
Til dette kan du bruge en repeater til at vise dine data, Det kunne f.eks.
se sådan her ud:
<script language="c#" runat="server">
void Page_Load(){
SqlConnection objConn = new SqlConnection(
"server=xxxx;database=yyy;UID=
z;PWD=....." );
SqlCommand objComm = new SqlCommand();
objConn.Open();
objComm.Connection = objConn;
objComm.CommandText = "SELECT Fornavn, Efternavn, Firma FROM tblPersoner";
SqlDataReader objDataReader =
objComm.ExecuteReader(CommandBehavior.CloseConnection);
Repeater.DataSource = objDataReader;
Repeater.DataBind();
}
</script>
<ASP:Repeater id="Repeater" runat="server">
<HeaderTemplate>
<table width="100%" style="background-color:green;">
<tr>
<th>
Fornavn
</th>
<th>
Efternavn
</th>
<th>
Firma
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="background-color:red;">
<%# DataBinder.Eval(Container.DataItem, "Fornavn") %>
</td>
<td style="background-color:yellow;">
<%# DataBinder.Eval(Container.DataItem, "Efternavn") %>
</td>
<td style="background-color:blue;">
<%# DataBinder.Eval(Container.DataItem, "FirmaID") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</ASP:Repeater>
> Nu ser det jo lidt anderledes ud i .Net :) Jeg har hentet mine data ud i
> en datareader og har forsøgt at binde data til et datagrid. Mit problem
er,
> at det ikke helt virker som jeg gerne vil have det.
Du kan i ovenstående se hvordan man kan binde data til en repeater helt som
til et datagrid.
> Altså: hvordan laver jeg denne i en kolonne i et datagrid :
> <td><img src="images/<% = rs("countryCode")%>.gif title="<% =
rs("Language")%>"/></td>
Du printer blot din sti eller hvad du nu har gemt i databasen inde i img
tagget.
Du kan også sagtens bruge kontoller inde i dine templates så hvis dine
billeder skal "gøre noget" kan du lave dem til imagebuttons og sætte
serverside eventhandlers på
--
Jakob Andersen