Reputation: 63
i get NullReferenceException when fill Repeater.Some products features empty.i used IsNullControl() method when use UrlDecode() and kill() method for avoid exception.But i get error still.
<asp:Repeater ID="rptProducts" runat="server">
<ItemTemplate>
<div>
<%# Eval("ProductName")%>
</div>
<div>
<%# kill(Server.UrlDecode(IsNullControl(Eval("ProductFeature").ToString())))%>
</div>
</ItemTemplate>
</asp:Repeater>
try
{
ProductsDataContext pdc = new ProductsDataContext();
var query = from p in pdc.Products
select p;
rptProducts.DataSource = query;
rptProducts.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
public static string kill(string val)
{
val = val.Replace("<ul>", " ");
val = val.Replace("<li>", " ");
val = val.Replace("</li>", "<br/>");
val = val.Replace("</ul>", " ");
return val.ToString();
}
public static string IsNullControl(string val)
{
string space = " ";
if (string.IsNullOrEmpty(val))
{
val = space;
}
return space;
}
Upvotes: 0
Views: 730
Reputation: 63065
check null as below
<%#kill(Server.UrlDecode(Eval("ProductFeature")?? String.Empty))%>
or you can change the query as below
var query = from p in pdc.Products
select p
where p!= null;
Upvotes: 1
Reputation: 3045
You are converting a field into string first before checking for null in this code fragment --> Eval("ProductFeature").ToString()
Upvotes: 2