Engine^Medlem sedan dec. 20003 887 inlägg Har just suttit och läst igenom en tidigare tråd och försökt förstå den... det har väl fungerat rätt bra ;)
Jag testar just för tillfället att visa lite data med ett DataSet kopplat till en Repeater och det fungerar ju som jag hade tänkt, men så tänkte jag börja formattera lite text i kolumnerna och efter att jag läst ovan nämnda tråd verkade ItemDataBound vara praktiskt för ändamål som detta.
Nu märkte jag att ItemDataBound även finns som event för Repeater (vilket kanske inte är så konstigt) och jag undrar vilken metod bör man använda? Finns det några fallgropar eller andra hemskheter med ett DataSet? Jag tyckte det gick så rackarns smidigt...
Engine^Medlem sedan dec. 20003 887 inlägg Bluäh! Stötte ju såklart på bekymmer - säkert samma som icaaq brottades med. Det verkar som om min label inte får data i den ordning jag trodde eller så begriper jag mig inte på OnItemDataBound... lite kod
<asp:Label id="lblRemoteAddr" runat="server"><%# DataBinder.Eval(Container.DataItem, "strRemoteAddr") %></asp:Label>
Det där ligger inbakat i en Repeater och lite annat, men det är nog inte bekymret. Det verkar snarare vara den där DataBinder.Eval som strular... för i min codebehind kommer jag åt min Label med
public void objRepeaterHistory_DataBound(object objSrc, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
((Label) e.Item.FindControl("lblRemoteAddr")).Text == "Hej...";
}
Det tråkiga är att min Label inte fått någon data ännu, så den formattering jag hade tänkt att göra (korta ner texten...) blir verkningslös. Varför har kontrollen inte någon data, när OnItemDataBound-eventet uppenbarligen skett?
renholmMedlem sedan apr. 20012 266 inlägg Testa att sätta datan direkt i DataBound.
public void objRepeaterHistory_DataBound(object objSrc, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
((Label)e.Item.FindControl("lblRemoteAddr")).Text == ((DataRow)e.Item.DataItem)["strRemoteAddr"];
}
Något i den stilen, ersätt DataRow med det objekt du använder för att hämta datan.
Engine^Medlem sedan dec. 20003 887 inlägg Man tackar! (det var en DataRowView)