JJosefMedlem sedan mars 20023 561 inlägg Frågan#1 Många problem för mig idag. ;)
Jag har en repeater, rLinks, som är bunden till ett dataset.
Ibland är kolummen som efterfrågas av repeatern tom i datakällan.
Koden:
<%# CheckIfEmpty(DataBinder.Eval(Container.DataItem, "url").ToString())%>
Funktionen CheckIfEmpty:
public string CheckIfEmpty(string input)
{
if (input == "")
{
return "No comment";
}
else
{
return input;
}
}
Detta borde fungera, men gör det inte. Någon som har någon aning om varför? :l
DDinoMedlem sedan sep. 20011 914 inlägg Använd dig av ItemDataBound istället.
I repeatern:
<asp:repeater id="repGrr" OnItemDataBound="repGrr_itemDatabound" runat="server">
...
ItemDataBound:
void repGrr_itemDatabound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = ((DataRowView)e.Item.DataItem);
string data = drv["column_name"].ToString();
string bla = "";
if(data.Length > 0)
{
bla = "No comment";
}
else
{
bla = data;
}
((Label)e.Item.FindControl("lbUrl")).Text = bla;
}
}
och istället för
<%# CheckIfEmpty(DataBinder.Eval(Container.DataItem, "url").ToString())%>
så sätter du dit en label
<asp:label id="lbUrl" runat="server"/>
Tror det var så det skulle se ut. :)
JJosefMedlem sedan mars 20023 561 inlägg /r: Ändring igen. Inget felmeddelande, men inget "No comment" i url-kolummen om datakällan innehåller null.
DDinoMedlem sedan sep. 20011 914 inlägg Ska vara tvätom.
...
if(data.Length > 0)
{
bla = data;
}
else
{
bla = "No comment";
}
...
Var tvungen att bygga upp ett dataset och testa och för mig funkar det.
JJosefMedlem sedan mars 20023 561 inlägg /red: Problemet är nu löst. Tackar Dino! :bire
Hade satt labeln i fel kolumm. :r