动态生成的gridview如何排序?
tflb 2010-08-17 10:22:38 //gridview生成及排序
g_help.FillDataTable(ref dt, l_STR);
gvshow = new GridView();
gvshow.AutoGenerateColumns = false;
gvshow.AllowSorting = true;
gvshow.Sorting += new GridViewSortEventHandler(gvshow_Sorting);
gvshow.RowEditing += new GridViewEditEventHandler(gvshow_RowEditing);
gvshow.RowDeleting += new GridViewDeleteEventHandler(gvshow_RowDeleting);
gvshow.RowDataBound += new GridViewRowEventHandler(gvMaster_RowDataBound);
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField bc = new BoundField();
bc.DataField = dt.Columns[i].ColumnName.ToString();
bc.SortExpression = dt.Columns[i].ColumnName.ToString();
bc.HeaderText = dt.Columns[i].Caption.ToString();
gvshow.Columns.Add(bc);
}
DataView view = new DataView(dt);
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view.Sort = sort;
gvshow.DataSource = view;
CommandField cf = new CommandField();
cf.ButtonType = ButtonType.Link;
cf.ShowEditButton = true;
cf.CausesValidation = false;
gvshow.Columns.Add(cf);
CommandField cf2 = new CommandField();
cf2.ButtonType = ButtonType.Link;
cf2.ShowDeleteButton = true;
cf2.CausesValidation = false;
gvshow.Columns.Add(cf2);
gvshow.DataBind();
divshow.Controls.Add(gvshow);
//Access数据库行转列语句
l_STR = "select * from (TRANSFORM max(score) SELECT ScoreManagement.studentID as 学号, name as 姓名 FROM ScoreManagement,StatusManagement,CourseName,CourseManagement,ExamManagement " +
" where ScoreManagement.studentID=StatusManagement.studentID and ScoreManagement.courseID=CourseManagement.cID and CourseManagement.courseID=CourseName.courseID " +
" and ExamManagement.examID=ScoreManagement.examID and ScoreManagement.examID='" + examDateList.SelectedItem.Value + "' GROUP BY ScoreManagement.studentID,name PIVOT courseName)";
现在问题是可动态生成字段
学号,姓名,语文,数学。
按学号,姓名,都可以排序,但语文,数学不行,这两个是动态生成的,如果有语文成绩就有语文列。
请问如果解决,给个思路也行,感谢了。。