C#-对GridView中的多个列使用相同的对象

本文关键字:对象 GridView C#- | 更新日期: 2023-09-27 17:54:42


我有一个学生注册网格视图,其中填充了注册对象。注册对象具有学生Id。使用该Id,我将填充注册网格视图的2列(来自学生对象的3个属性(
现在,我正在用下面的代码来做这件事。这意味着同一个对象要往返3次数据库,这是非常糟糕的。如何使用同一个对象来获得这3个属性?

<asp:TemplateField HeaderText="Student Name">
                <ItemTemplate>
                    <asp:Label ID="lblName" runat="server" Text='<%# string.Format("{0} - {1}", StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).FirstName, StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).Surname) %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Student DOB">
                <ItemTemplate>
                    <asp:Label ID="lblDOB" runat="server" Text='<%# StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).DateOfBirth %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

编辑:仅供参考,我必须处理更新网格视图行的问题,这将涉及到向每行添加文本框等。你能把答案保持在这一点上吗?

非常感谢!

C#-对GridView中的多个列使用相同的对象

将数据绑定到网格视图的方式是错误的。您需要在对象/集合中获取Data,然后将该数据作为DataSource绑定到GridView

看看这里用ObjectDataSource显示数据,也看看用SqlDataSource控制查询数据