Databinding: does not contain a property with the name 'CategoryId' error
I am going through a tutorial and trying out something when I got this error with this line, can someone advice, thanks:
<ItemTemplate>
<a class='MostPopularItemText' href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>&&CategoryId=<%# Eval("CategoryId") %>'><%# Eval("ModelName") %></a><br />
</ItemTemplate>
Somethings not right with 'CategoryId' because it will 开发者_如何学Pythonwork if I take it out:
<aclass='MostPopularItemText'href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>&&CategoryId=<%# Eval("CategoryId") %>'><%# Eval("ModelName") %></a><br/>
to
<aclass='MostPopularItemText'href='ProductDetails.aspx?productID=<%# Eval("ProductId") %>'><%# Eval("ModelName") %></a><br/>
Codebehind:
private void WriteAlsoPurchased(int currentProduct)
{
using (CommerceEntities db = new CommerceEntities())
{
try
{
var v = db.SelectPurchasedWithProducts(currentProduct);
RepeaterItemsList.DataSource = v;
RepeaterItemsList.DataBind();
}
catch (Exception exp)
{
throw new Exception("ERROR: Unable to Write Also Purchased - " + exp.Message.ToString(), exp); <------location where the exception is thrown
}
}
}
'SelectPurchasedWithProducts' Store Procedure:
ALTER PROCEDURE
dbo.SelectPurchasedWithProducts
@ProductID int
AS
SELECT TOP 5
OrderDetails.ProductID,
Products.CategoryID,
Products.ModelName,
SUM(OrderDetails.Quantity) as TotalNum
FROM
OrderDetails
INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID
WHERE
OrderID IN
(
/* This inner query should retrieve all orders that have contained the productID */
SELECT DISTINCT OrderID
FROM OrderDetails
WHERE ProductID = @ProductID
)
AND
OrderDetails.ProductID != @ProductID
GROUP BY
OrderDetails.ProductID, Products.CategoryID, Products.ModelName
ORDER BY
TotalNum DESC
RETURN
Your property is named CategoryID not CategoryId
<%# Eval("CategoryId") %>
Should read
<%# Eval("CategoryID") %>
Some thoughts:
How about <%# Eval("Products.CategoryId") %>?
Are the two ampersands causing an issue? &&CategoryId=...
Also, try binding CategoryId outside of the link by itself and verify that the value outputs. Your code looks good to me that's why I have to wonder if it's just the way your link is structured.
Ok I think I got it, after updating the S Proc, I have to access my Model Browser Function, expand the EntityContainer, enter the Function Imports and click on Update button. I hope this helps those with either the
"Databinding: does not contain a property with the name 'xxx' error." or "A member of the type, 'xxx', does not have a corresponding column in the data reader with the same name."
after everything seem to be in place.
精彩评论