2009-04-12 5 views
0

나는 문제가 생길 것 같아서 어떻게 작동하게 만들지 모르겠다. linq을 사용하여 XML에서 데이터를 가져 오려고하지만 코드가 작동하지만이 linq 데이터를 ListView의 DataSource로 사용하려고하면 오류가 발생합니다.LINQ to XML 및 ViewList

어떻게 작동합니까? 호출기와 ListView 그것을 받아 들일 수 있도록 어떻게 내 변수를 적절한 변수로 변환합니까?

코드의 모든 예제를 높이 평가할 것입니다.

Exception Details: System.InvalidOperationException: ListView with id 'showTopics' must have a data source that either implements ICollection or can perform data source paging if AllowPaging is true. 

Source Error: 

Line 28:   showTopics.DataSource = archievePosts; 
Line 29:   showTopics.DataBind(); 

그리고 코드 숨김 :

String xmlpath = Server.MapPath("App_Data/topics.xml"); 
var archievePosts = from a in XElement.Load(xmlpath).Elements("topic") 
        where (DateTime.Parse(a.Element("topicdate").Value) <= DateTime.Parse(hDate.Text)) 
        select new 
        { 
         topic_id = a.Attribute("id").Value.ToString(), 
         topic_subject = a.Element("topicname").Value, 
         topic_date = a.Element("topicdate").Value 
        }; 
showTopics.DataSource = archievePosts; 
showTopics.DataBind(); 

답변

2

당신은 ToArrayList() 또는 ToList()

을 사용할 수 있습니다하지만 당신은 당신이 받고 있는지 확인있는 내가 점점 오전 오류가

데이터가 있거나 문제가있는 경우 디버그하고 ArchivePosts 값을 확인하십시오.

희망이 도움이됩니다.

+0

예 데이터를 가져올 것입니다. 디버깅하는 동안 호출기를 끄고 적절한 값을 반환했습니다. 이제 방법을 시도해보십시오. – Dmitris

+0

귀하의 제안이 효과가있었습니다. 고맙습니다. – Dmitris

+0

언제든지 도와 주셔서 감사합니다. :) – DevMania