到目前为止,这就是我所拥有的。
protected void CategoryRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Object dataItem = e.Item.DataItem;
// code to pull catid out of dataItem
}
以下是在调试中运行后 dataItem 包含的内容的示例:
我想把猫从物体中拉出来。我试过施放它,但所有施放它的尝试都没有成功。我的目标是将此 catid 用于嵌套转发器的数据绑定(bind).. 像这样:
using (NERAEntities entities = new NERAEntities())
{
var Questions = (from x in entities.Questions
where x.CategoryID == catid
select new { QuestionText = x.Text });
QARepeater.DataSource = Questions;
QARepeater.DataBind();
}
最佳答案
问题是 DataItem 本身并没有真正的类型(它是一个匿名类)。您需要改用它:
dynamic dataItem = e.Item.DataItem ;
int catId = dataItem.catid ;
显然,如果实际对象没有
catId
属性,这将在运行时失败。关于c# - 无法将 [] 索引应用于 'object' 类型的表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18129271/