2012-05-15 75 views
0

我有一个中继器内的中继器。我在父代中继器的ItemDataBound事件中绑定了内部中继器,其中myEventDetails list()。我在page_load内获得这个myEventDetails list()在LINQ语句中得到“枚举没有结果”的错误?

所以当我用下面的LINQ查询我越来越

“枚举没有结果”

和内部中继器具有空值。

protected void parentRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 

     Repeater inner = (Repeater)(e.Item.FindControl("innerRepeater")); 


     var allEvents = from x in myEventDetails 
        where x.event_name == "test" 
        select new 
        { 
         EventName = x.event_name, 
         EventID = x.event_id 
        }; 

     inner.DataSource = allEvents; 
     inner.DataBind(); 
    } 
} 

当我调试时,我得到的值为myEventDetails list()。所以它不是空的。

感谢

+1

您可以显示myEventDetails类型的实现吗? – phg

回答

1

这是因为你没有匹配正确的文本吗?尝试使用ToLower

where x.event_name.ToLower() == "test" 
+0

你说得对,文本“test”后面有一些空格。 – Tiger

2

它说,有一个在您myEventDetails收集与event_name == "test"没有元素。

+0

但我确实在集合中具有事件名称作为“test”的值。 – Tiger

+0

你在调试器中看到这个错误? –

+0

是的,我在调试器中看到这个错误!同时我也能够在myEventDetails集合中看到“测试”事件名称。 – Tiger

0

尝试调用ToList()

inner.DataSource = allEvents.ToList(); 
+0

我忘了提及,但我也尝试过... – Tiger

0

凡myEventDetails来自哪里?这是班级的场地/财产吗?

你可以指定allEvents.ToList()到另一个变量,看看是否有帮助吗?我以前有过这样奇怪的问题,似乎是通过这样做来解决的......我从来没有弄清楚为什么,但值得一试。