我全局了一个dataView,然后给这个dataView添入数据,再将那个ListView的DataSource设置成这个dataView,然后数据绑定。这个ListView能正常显示了,但是一旦要进行选择或者排序的时候,就会出现类似 ListView“ExperimentalReportsList”引发了未处理的事件 SelectedIndexChanging。 的错误。这个是怎么回事?部分代码如下:
dataView = (DataView)ExperimentalReports.Select(DataSourceSelectArguments.Empty);
if (dataView != null)
{
dataView.Table.Columns.Add("StudentId", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("LastName", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("FirstName", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("Name", System.Type.GetType("System.String")); foreach (DataRow dataRow in dataView.Table.Rows)
{
ProfileCommon profile = Profile.GetProfile(Membership.GetUser(dataRow.Field<Guid>("UserId"), false).UserName);
dataRow.SetField<String>("StudentId", profile.ID);
dataRow.SetField<String>("LastName", profile.LastName);
dataRow.SetField<String>("FirstName", profile.FirstName);
dataRow.SetField<String>("Name", profile.LastName + " " + profile.FirstName);
} ExperimentalReportsList.DataSource = dataView;
ExperimentalReportsList.DataBind();
}
谢谢大家!
dataView = (DataView)ExperimentalReports.Select(DataSourceSelectArguments.Empty);
if (dataView != null)
{
dataView.Table.Columns.Add("StudentId", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("LastName", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("FirstName", System.Type.GetType("System.String"));
dataView.Table.Columns.Add("Name", System.Type.GetType("System.String")); foreach (DataRow dataRow in dataView.Table.Rows)
{
ProfileCommon profile = Profile.GetProfile(Membership.GetUser(dataRow.Field<Guid>("UserId"), false).UserName);
dataRow.SetField<String>("StudentId", profile.ID);
dataRow.SetField<String>("LastName", profile.LastName);
dataRow.SetField<String>("FirstName", profile.FirstName);
dataRow.SetField<String>("Name", profile.LastName + " " + profile.FirstName);
} ExperimentalReportsList.DataSource = dataView;
ExperimentalReportsList.DataBind();
}
谢谢大家!
ExperimentalReportsList.SelectedIndex = e.NewSelectedIndex;
ExperimentalReportsList.DataBind();
但是排序就麻烦了,总是升序,也不知道怎么发降序的命令,用代码的话肯定能解决,但是想不通为什么用datasource控件绑定就可以,用代码就不行。