Data source is an invalid type. It must be either an IListSource, IEnumerable, or IDataSource

后端 未结 3 1171
说谎
说谎 2021-01-14 16:28

Data source is an invalid type. It must be either an IListSource, IEnumerable, or IDataSource. The error is displayed when I bind the grid view

var list = d         


        
相关标签:
3条回答
  • 2021-01-14 17:04

    Could the above not be shortend to..

    var empInfo = dal.GetEmployeebyName(name);
    
    GridViewEmployee.DataSource = empInfo.ToList();
    GridViewEmployee.DataBind();
    
    0 讨论(0)
  • 2021-01-14 17:16

    In my testing page I make us of the following piece of code to display a list of different objects or just a single object in the same gridview.

       var data = bl.getAirlines();
       // If single object returned cast to List
       // Note that could be already a list of 1 item though!
        if (data.Count == 1)
        {
            var list = new List<object> { data };               
            GridView1.DataSource = list;
        }
        else
         // Bind to list of items returned
            GridView1.DataSource = data;
    
        GridView1.DataBind();
    

    Hope it helps! It works for me :)

    0 讨论(0)
  • 2021-01-14 17:28

    You are returning a single object from GetEmployeebyName method and binding that to the GridViewEmployee, thats why it is giving error.

    You can change it like

    var empInfo = dal.GetEmployeebyName(name);
    var list = new List<EmployeeInfo>{empInfo};
    
    //or you can do this 
    //var list = new List<EmployeeInfo>();
    //list.Add(empInfo);
    
    GridViewEmployee.DataSource = list;
    GridViewEmployee.DataBind();
    

    DataSource must be a type of collection as the exception is stating ( It must be either an IListSource, IEnumerable, or IDataSource)

    0 讨论(0)
提交回复
热议问题