Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在网格视图中添加选中项? List checkedItemList=subjectCheckBoxList.Items.Cast() .Where(c=>c.Selected).ToList(); subjectGridView.DataSource=checkedItemList;//引起异常 subjectGridView.DataBind();_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 如何在网格视图中添加选中项? List checkedItemList=subjectCheckBoxList.Items.Cast() .Where(c=>c.Selected).ToList(); subjectGridView.DataSource=checkedItemList;//引起异常 subjectGridView.DataBind();

C# 如何在网格视图中添加选中项? List checkedItemList=subjectCheckBoxList.Items.Cast() .Where(c=>c.Selected).ToList(); subjectGridView.DataSource=checkedItemList;//引起异常 subjectGridView.DataBind();,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我想在列表视图中查看具有主题ID和名称的选定项目。网格视图的项目是Model.Student类型。我的代码给出了一个例外。我该怎么办?对于GridView数据源,您需要包含Model.Student项的内容。如果每个列表项.Value的类型都是Model.Student,则可以使用: List<ListItem> checkedItemList = subjectCheckBoxList.Items.Cast<ListItem>()

我想在列表视图中查看具有主题ID和名称的选定项目。网格视图的项目是
Model.Student
类型。我的代码给出了一个例外。我该怎么办?

对于
GridView
数据源,您需要包含
Model.Student
项的内容。如果每个
列表项.Value
的类型都是
Model.Student
,则可以使用:

List<ListItem> checkedItemList = subjectCheckBoxList.Items.Cast<ListItem>()
                                     .Where(c => c.Selected).ToList();

subjectGridView.DataSource = checkedItemList;  // causes exception
subjectGridView.DataBind();
var checkedStudents=subjectCheckBoxList.Items.Cast()。其中(c=>c.Selected)
.Select(c=>(Model.Student)c.Value).ToList();
subjectGridView.DataSource=checkedStudents;
subjectGridView.DataBind();
var checkedItemList=subjectCheckBoxList.Items.Cast().Where(c=>c.Selected.ToList();
列表=新列表();
foreach(checkedItemList中的ListItem项)
{               
Model.Subject asobject=新Model.Subject();
asobject.ID=int.Parse(item.Value);
AsObject.SubjectName=项.Text;
列表。添加(一个对象);
}            
subjectGridView.DataSource=列表;
subjectGridView.DataBind();

例外情况是什么?您正在将网格中的项目强制转换为
列表项目
,而不是
模型。学生
@LosMonas,请您给他一个答案,因为我可以看出您在想:)如果我不强制转换为列表项目,c.选择是不可能的。即。它标记了如何将
模型。学生
项添加到
主题复选框列表
?您需要一些类型的集合
Model.Student
才能添加为
GridView
var checkedStudents = subjectCheckBoxList.Items.Cast<ListItem>().Where(c => c.Selected)
                          .Select(c => (Model.Student)c.Value).ToList();

subjectGridView.DataSource = checkedStudents;
subjectGridView.DataBind();
 var checkedItemList = subjectCheckBoxList.Items.Cast<ListItem>().Where(c => c.Selected).ToList();
        List<Model.Subject> list = new List<Model.Subject>();
        foreach (ListItem item in checkedItemList)
        {               
                Model.Subject aSubject = new Model.Subject();
                aSubject.ID = int.Parse(item.Value);
                aSubject.SubjectName = item.Text;
                list.Add(aSubject);
        }            
        subjectGridView.DataSource = list;  
        subjectGridView.DataBind();