2013-01-17 77 views
0

我试图填充DropDownlist,但它似乎并没有填充,我不知道为什么它不是。我能否得到第二双眼睛来帮助我弄清楚我的错在哪里? 以下是我的代码:试图通过LINQ到C中的实体填充下拉列表#

private testhousingEntities1 canceldb = new testhousingEntities1(); 
    /*=================================================*/ 
    /*load form          */ 
    /*=================================================*/ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      InitializeForm(); 
     }   
    } 

    /*================================================*/ 
    /*            */ 
    /*================================================*/ 
    private void InitializeForm() 
    { 
     var version = (from v in canceldb.CancellationVersions 
         where v.Active 
         select v).FirstOrDefault(); 

     /*populating states and countries drop downlist */ 
     FormHelpers.GenerateStates(ddlState); 
     FormHelpers.GenerateCountries(ddlCountry); 

     /*populating drop downlist */ 
     semesterList();    
    } 

    /*=================================================*/ 
    /*populating the Semester drop downlist   */ 
    /*=================================================*/ 
    private void semesterList() 
    { 
     ddlSemester.Items.Insert(0, new ListItem("---------", "000")); 

     var semester = from s in canceldb.cancellationsemesters 
         select new {         
            cid= s.id, cSemester = s.Semester,       
            }; 
     ddlSemester.DataSource = semester; 
     ddlSemester.DataTextField = "cSemester"; 
     ddlSemester.DataValueField = "cid"; 
     ddlSemester.DataBind(); 
    } 

    /*=================================================*/ 
    /*populating the Semester drop downlist   */ 
    /*=================================================*/ 
    protected void ddlSemester_SelectedIndexChanged(object sender, EventArgs e) 
    {    
     if (!IsPostBack) 
     { 
      semesterList();     
     } 
    } 

回答

1

尝试添加一个ToList();

ddlSemester.DataSource = semester.ToList(); 
+0

这没有做任何事情。它拿出了“-----”作为实际列表中的第一项。但是名单仍然是空的 – Paradigm

+0

试着把它分解成一个类。 {cid = s.id,cSemester = s.Semester} 它可能不喜欢绑定到匿名类。 – user959729

+1

匿名对象在这种情况下是正确的。见例如http://brandonatkinson.blogspot.cz/2011/03/populating-aspnet-dropdownlist-control.html – mipe34