0

我想对绑定到下拉列表的数据进行排序。

我从数据库中获取学生的姓名,但我认为我不能直接使用 orderby。

因为我从数据库中获取的数据是 Guid 类型的学生 ID。

然后我从 id 中找到全名。

这是代码

public DataTable GetAllStudentNameFromMentor(Guid MentorId)
        {
            DataTable AllStudents = new DataTable();
            AllStudents.Columns.Add("StudentID", typeof(Guid));
            AllStudents.Columns.Add("studentName", typeof(string));
             var allm = from sm in Db.StudentMentor
                       where sm.MentorID.Equals(MentorId)
                       select sm;

            foreach (var v in allm)
            {
                string studentname = BussinesCollection.BussinesPerson.GetFullName(v.StudentID.Value);
                AllStudents.Rows.Add(v.StudentID,studentname);
            }
            return AllStudents;
        }

我在下拉列表中绑定表格。

ddlstudent.DataSource = m.bussinesCollection.BussinesMentor.GetAllStudentNameFromMentor(MentorID);
        ddlstudent.DataBind();

但我希望名称应按字母顺序排列。

有没有人愿意帮助我..

4

3 回答 3

0

试试这个

public DetaView GetAllStudentNameFromMentor(Guid MentorId)
{
  DataTable AllStudents = new DataTable();
  AllStudents.Columns.Add("StudentID", typeof(Guid));
  AllStudents.Columns.Add("studentName", typeof(string));
  var allm = from sm in Db.StudentMentor
             where sm.MentorID.Equals(MentorId)
             select sm; 
  foreach (var v in allm)
  {
      string studentname = BussinesCollection.BussinesPerson.GetFullName(v.StudentID.Value);
      AllStudents.Rows.Add(v.StudentID,studentname);
  }
AllStudents.DefaultView.Sort = "studentName ASC";
return AllStudents.DefaultView;
}

有关此的更多信息,请点击此处

于 2012-10-10T11:04:19.630 回答
0

我们可以使用 dataview 对数据表进行排序,如下所示:

  1. 先把datatable转成dataview再排序

DataView dataView = new DataView(AllStudents);

dataView.Sort = "studentName ASC";
于 2012-10-10T11:09:13.177 回答
0

由于您使用的是 id 和值对,因此您可以使用可以轻松订购的 Dictionary。还要确保在将字典绑定到 ddl 之前更改标记或代码后面的ddl.DataValueField="Key"and 。ddl.DataTextField="Value"

public Dictionary<Guid, string> GetAllStudentNameFromMentor(Guid MentorId)
{
    Dictionary<Guid,string> myDic = new Dictionary<Guid,string>();

    var allm = from sm in Db.StudentMentor
                   where sm.MentorID.Equals(MentorId)
                   select sm;

    foreach (var v in allm)
    {
           myDic.Add(v.StudentID,
              BussinesCollection.BussinesPerson.GetFullName(v.StudentID.Value));
    }

    return myDic.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
}
于 2012-10-10T11:16:05.647 回答