gridview中的datasources和Eval

时间:2009-11-27 21:24:30

标签: asp.net gridview linqdatasource

我有一个使用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>

1 个答案:

答案 0 :(得分:1)

也许您不需要使用tblUserProfile限定Phone字段?没有尝试;只需使用DataField="Phone"