Источники данных и Eval в виде сетки - PullRequest
1 голос
/ 28 ноября 2009

У меня есть сетка с использованием 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, есть ли идеи, почему это позволило бы мне отредактировать это поле, но когда я нажму кнопку Обновить в сетке, оно не сохранит его?

  <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 Ответ

1 голос
/ 29 ноября 2009

Возможно, вам не нужно указывать поле Телефон с помощью tblUserProfile? Попробуйте это без; просто используйте DataField="Phone".

...