请我在尝试获取由实体数据源限制的 Web 应用程序中的 gridview 控件的主键时遇到问题。我有一个名为人员的表,该表上有大约 25 列。该表的主键由一个两列的组合,即列 [StaffID] 和列 [SchoolID]。我使用 entitydatasource 控件连接到表。我没有选择所有列,我只选择了其中的四个列。下面是 entitydatasource 控件的标记。
ContextTypeName="DEMOWEBAPPLICATION.PriSecDbEntities" EnableFlattening="False"
AutoGenerateOrderByClause="true"
EntitySetName="Staffs" EntityTypeFilter="Staff"
Select="it.[StaffID], it.[SchoolID], it.[Surname], it.[FirstName]">
<OrderByParameters>
<asp:Parameter
DefaultValue="StaffID" />
</OrderByParameters>
</asp:EntityDataSource>
我将此绑定到一个gridview控件。我的问题是我想要一种情况,当我单击gridview上的一行时,我将能够在不同的文本框控件上显示我的员工表中的不同列(例如,我将能够做到像这样的 txtSurname.text=newStaff.name 等等),我将能够编辑和更新它,它会在数据库上更新。我一直在尝试创建人员对象并通过在 vb.net Dim newStaff As Staff = DirectCast(grdLoadStaffDetails.SelectedPersistedDataKey("StaffID"), Staff) 中的 gridview selectedindexchanged 事件处理程序中执行此操作来获取主键列,但它抛出增加了无效的演员表执行时间。在过去的五个小时里,我一直在拔头发。非常感谢任何帮助。谢谢