到目前为止,这就是我所拥有的。

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/

10-13 06:20