1

我有一个使用 linqdatasource 和我创建的 datamodelcontext 的 gridview。

为什么我可以这样做:

<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>
4

1 回答 1

1

也许您不需要使用 tblUserProfile 限定电话字段?不试一试;只需使用DataField="Phone".

于 2009-11-29T10:49:47.783 回答