私はデータをgridviewにバインドしようとしています。私の列には、値のリストを含む2つの列がありますが、私のgridviewは2つの列のデータを表示しません。私はそれで間違って何をしているのですか? これはこれは、GridViewのための私のコードですGridviewの値のリストを表示
[DataObjectMethod(DataObjectMethodType.Select, false)]
public List<ListCourseByProgram> GetCourseByProgram(string programID)
{
int intProgramID = Int32.Parse(programID);
using (HiveMindContext context = new HiveMindContext())
{
var results = from data in context.Courses
where data.ProgramID == intProgramID
select new ListCourseByProgram()
{
CourseID = data.CourseID,
ProgramID = intProgramID,
CourseName = data.CourseName,
Active = data.Active,
Credit = data.Credit,
Pre_Requisites = data.Pre_Requisites,
EquivCourseName = from equiName in data.Equivalencies
where data.CourseID == equiName.CourseID
select new CourseNameEquivalency()
{
EquivCourseName = equiName.EquivCourseName,
},
EquivCourseID = from equiID in data.Equivalencies
where data.CourseID == equiID.CourseID
select new CourseIDEquivalency()
{
EquivCourseID = equiID.EquivCourseID
}
};
return results.ToList();
}
}
griviewコントローラ」のための私のコードです:
<asp:GridView ID="Courses_Grid" runat="server" AutoGenerateColumns="False" Width="700px" >
<Columns>
<asp:TemplateField Visible="true">
<HeaderTemplate>
CourseID
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblCourseID" runat="server" Text= '<%#Eval("CourseID") %>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ProgramID" HeaderText="ProgramID" SortExpression="ProgramID"></asp:BoundField>
<asp:BoundField DataField="CourseName" HeaderText="CourseName" SortExpression="CourseName"></asp:BoundField>
<asp:CheckBoxField DataField="Active" HeaderText="Active" SortExpression="Active"></asp:CheckBoxField>
<asp:BoundField DataField="Credit" HeaderText="Credit" SortExpression="Credit"></asp:BoundField>
<asp:BoundField DataField="Pre_Requisites" HeaderText="Pre_Requisites" SortExpression="Pre_Requisites"></asp:BoundField>
<%--<asp:BoundField DataField="EquivCourses" HeaderText="Equivalency" SortExpression="EquivCourses"></asp:BoundField>--%>
<asp:TemplateField Visible="true">
<HeaderTemplate>
EquivalencyCourseName
</HeaderTemplate>
<ItemTemplate>
<asp:Repeater ID="CourseEquivRepeater" runat="server" DataSource='<%#Eval("EquivCourseNames")%>'>
<ItemTemplate>
<%# (Container.ItemIndex+1)+"."+ Container.DataItem %><br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="true">
<HeaderTemplate>
EquivalencyCourseID
</HeaderTemplate>
<ItemTemplate>
<asp:Repeater ID="CourseEquivRepeater2" runat="server" DataSource='<%#Eval("EquivCourseIDs")%>'>
<ItemTemplate>
<%# (Container.ItemIndex+1)+"."+ Container.DataItem %><br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:TemplateField>
</Columns>
感謝。しかし、これらのクエリは値のリストを選択するために使用され、EquivCourseNameおよびEquivCourseIDのデータ型はIenumerable <>です。だから私は彼らの値のリストを返す必要があると思う – Kranatos
これは私のコントローラのためのDTOsクラスです: public class ListCourseByProgram { public int CourseID {get;セット; } public int ProgramID {get;セット; } 公開ストリングCourseName {get;セット; } public boolアクティブ{get;セット; } 公開小数点クレジット{get;セット; } 公開ストリングPre_Requisites {get;セット; } パブリックIEnumerable EquivCourseName {get;セット; } // public String EquivCourses {get;セット; } 公開IEnumerable EquivCourseID {get;}セット; } } –
Kranatos
グリッドを修正するか、昏睡区切りの結果を使用する –