Nybörjarvarning på denna fråga men jag kan inte hitta något svar på detta någonannanstans i forumet. Antar att du menar på aspx-sidan: Johan, *hehe*Ingenting visas i DataList-kontroll ?
Kör följande i ASP.Net Codebehind:
private void BindList(){
try
{
OleDbConnection cnn;
string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source='/Inetpub/wwwroot/xxx/xxx/xxx.mdb'";
StringBuilder sqlString = new StringBuilder("SELECT TOP ");
sqlString.Append("50");
sqlString.Append(" sNamn, sID FROM spelare");
cnn = new OleDbConnection(ConnString);
cnn.Open();
OleDbCommand OleDbCmd = cnn.CreateCommand();
OleDbCmd.CommandText = sqlString.ToString();
OleDbDataAdapter da = new OleDbDataAdapter(OleDbCmd);
DataSet ds = new DataSet();
da.Fill(ds,"spelare");
DataList1.DataSource = ds.Tables["spelare"].DefaultView;
DataList1.DataMember = "sNamn";
DataList1.DataKeyField = "sID";
DataList1.DataBind();
cnn.Close();
}
catch(Exception e){
lblMessage.Text = e.Message.ToString();
}
}
När jag klickar på en knapp kör den functionen BindList(). Resultatet som jag förväntar mig är att en datalist med mina spelare uppdradade. Men resultatet blir en datalist med ett antal rader men ingen data mellan <span></span> -taggarna:
<span id="DataList1" style="height:207px;width:525px;Z-INDEX: 101; LEFT: 42px; POSITION: absolute; TOP: 149px"><span>
<FONT style="FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffccff"></FONT>
</span><br><span>
<FONT style="FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffccff"></FONT>
</span><br><span>
<FONT style="FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffccff"></FONT>
</span><br><span>
och så vidare. Det märklig är att den genererar upp 20 tomma rader vilket stämmer med innehållet i tabellen. Den innehåller 20 spelare, men varför skrivs ingen information ut mellan <span></span>-taggarna ? Antar att jag förbisett något elementärt.
tack på förhand, God Jul
Sv:Ingenting visas i DataList-kontroll ?
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 42px; POSITION: absolute; TOP: 149px" runat="server" Height="207px" Width="525px" RepeatLayout="Flow">
<ItemTemplate>
<FONT style="FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffccff"></FONT>
</ItemTemplate>
</asp:DataList>
Sv: Ingenting visas i DataList-kontroll ?
*hehe* ursäkta jag skrattar men det är juh trots allt julafton och så blir man glad när man ser något sånt här. Det är väl inte så konstigt att det inte kommer ut någon på din sida? Du har sagt att för varje post i din datakälla så skall den skriva ut ett <b>tomt</b> font-element, men du har inte informerat det på något som helst sätt hur, var och när den skall hämta information från din datakälla och visa.
Prova följande
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 42px; POSITION: absolute; TOP: 149px" runat="server" Height="207px" Width="525px" RepeatLayout="Flow">
<ItemTemplate>
<FONT style="FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffccff">
<%# DataBinder.Eval(Container.DataItem, "sID") %> - <%# DataBinder.Eval(Container.DataItem, "sNamn") %>
</FONT>
</ItemTemplate>
</asp:DataList>
Vad jag gör är att använda en statiskmetod som heter <b>Eval</b> på <b>DataBinder</b> klassen. Den säger att hämta (förslagsvis) värdet från något som heter <b>sID</b> från <b>Container.DataItem</b> vilket betyder "för den aktuella raden i datakällan" (den går ju igenom rad för rad och skriver ut det du har i din <b>ItemTemplate</b>).
Eval är smart och förstår att eftersom du har kopplat en <b>DataView</b> till din DataList så förstår han att sID måste vara namnet på en kolumn.
God jul & lycka till!
Sv:Ingenting visas i DataList-kontroll ?
Lungt jag bjuder på den !! Kul att man kan glädja någon med sina problem.
Antog att jag missat något- tack för din eminenta förklaring... blev faktiskt sugen på att bli bonusmedlem nu bara för det superba svaret - TACK
GOD JUL