2012-05-15 96 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()到另一個變量,看看是否有幫助嗎?我以前有過這樣奇怪的問題,似乎是通過這樣做來解決的......我從來沒有弄清楚爲什麼,但值得一試。