我正在尝试在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>
任何帮助都会很好,谢谢。
答案 0 :(得分:0)
如果要编辑gridview中的数据,则不能使用匿名类型,因为它们是不可变的。当您将纯User
发送到gridview时,您可以修改数据,但现在您不能。您必须创建一个类(称之为DTO或视图模型)来保存您在gridview中显示的数据,以便您可以编辑它们。
这意味着您在提交更改时还必须将修改后的结果写回原始用户。