我有一个使用linqdatasource的gridview和我创建的datamodelcontext。
为什么我能这样做:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("tblUserProfile.Phone") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
但是这个:
<asp:BoundField DataField="tblUserProfile.Phone" HeaderText="ph" ReadOnly="True"/>
给出错误:
“在选定的数据源中找不到名为'tblUserProfiles.Phone'的字段或属性。”
如果数据源上不存在字段或属性,那么在第一种情况下它是如何工作的? eval到底做了什么?我以为它只是让你访问数据源上的一个字段?
对此很新,所以如果有人能给我一个基本的解释,我会很感激。
对于一个额外的cookie,任何想法为什么这会让我编辑这个字段,但当我点击gridview上的更新它实际上不会保存它?
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("tblUserProfile.Phone") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tb1" runat="server" Text='<%#Bind("tblUserProfile.Phone") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
答案 0 :(得分:1)
也许您不需要使用tblUserProfile限定Phone字段?没有尝试;只需使用DataField="Phone"
。