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

以下のようにdataviewを使用してdatatableを並べ替えることができます:

  1. 最初にデータテーブルをdataviewに変換してから、並べ替えます

DataView dataView = new DataView(AllStudents);

dataView.Sort = "studentName ASC";
于 2012-10-10T11:09:13.177 に答える
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

ID と値のペアを使用しているため、簡単に注文できる Dictionary を使用できます。また、ディクショナリを ddl にバインドする前に、マークアップまたはコード ビハインドの and を必ず変更してddl.DataValueField="Key"ください。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 に答える