0

我正在尝试在 gridview 中进行更新并且一切正常,直到我包含来自另一个表的“serviceArea”。

这是我的查询。

var result = from u in _db.tbl_Users
             where u.UserName.Contains(searchQuery)
                   && searchQuery.Length > 0
                   && u.Deleted == false
             select new
             {
                 u.UserName,
                 u.Email,
                 u.IsAdmin,
                 u.ServiceAreaId,
                 u.tbl_ServiceArea.ServiceArea,
                 u.UserId,
             };

grd_User.DataSource = result;
grd_User.DataBind();

当我尝试编辑时,数据绑定错误说没有找到 serviceArea 的定义。

我可以通过以下方式以某种方式做到这一点:

<EditItemTemplate>
      <asp:TextBox ID="txt_Val_ServiceArea" runat="server" Text='<%# Eval("ServiceArea") %>'></asp:TextBox>
 </EditItemTemplate>

任何帮助都会很好,谢谢。

4

1 回答 1

0

如果要在 gridview 中编辑数据,则不能使用匿名类型,因为它们是不可变的。当您将 plain Users 发送到 gridview 时,您可以修改数据,但现在不能。您必须创建一个类(称为 DTO 或视图模型)来保存您在 gridview 中显示的数据,以便您可以编辑它们。

这意味着您还必须在提交更改时将修改后的结果写回原始用户。

于 2013-02-13T09:18:34.580 回答