网格视图中的数据源和 Eval
我有一个 gridview,使用 linqdatasource 和我创建的 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>
I have a gridview using a linqdatasource with a datamodelcontext that I've created.
Why is it that I can do this:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("tblUserProfile.Phone") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
But this:
<asp:BoundField DataField="tblUserProfile.Phone" HeaderText="ph" ReadOnly="True"/>
Gives an error:
"A field or property with the name 'tblUserProfiles.Phone' was not found on the selected data source."
If the field or property doesn't exist on the datasource, how does it work in the first case? What does the eval do exactly? I thought it just let you access a field on the datasource?
Pretty new to this, so if someone could give me a basic explanation I'd appreciate it.
For an extra cookie, any ideas why this would let me edit this field, but when I click update on the gridview it wouldn't actually save it?
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许您不需要使用 tblUserProfile 限定 Phone 字段?尝试一下没有;只需使用
DataField="Phone"
。Perhaps you do not need to qualify the Phone field with tblUserProfile? Try it without; just use
DataField="Phone"
.