2010-07-02 4 views
1

왜 그리드 뷰 내에서 제대로 편집 할 수 있는지 알기 위해 노력하고 있지만 삭제 명령을 실행하면 서버 오류가 발생합니다. 오류 | | 500 | 'Member.fullname'라는 이름의 속성이 삽입시 개체 찾을 수 없습니다AJAX를 사용하는 GridView에서 행을 삭제할 때 오류가 발생했습니다.


208 : 다음과 같이

내가 삭제에 AJAX 포스트 백에 얻을 오류 메시지는 , 업데이트 또는 삭제 작업을 수행합니다. 바인딩 식으로 지정된 속성을 데이터 원본에서 사용할 수 있는지 확인하십시오.


편집 명령을 수행하면 문제가 발생하지 않습니다.

세 개의 항목 (작업, 회원, 프로젝트)이 있습니다. 내 EntityDataSources는 다음과 같이 설정 한

<asp:GridView ID="TaskList" runat="server" DataSourceID="TaskSource" DataKeyNames="id" 
    AutoGenerateColumns="False"> 
    <Columns> 
     <asp:TemplateField AccessibleHeaderText="Name" HeaderText="Name" > 
      <EditItemTemplate> 
       <asp:DropDownList ID="ddlMemberName" runat="server" DataSourceID="MemberSource" 
        DataTextField="fullname" DataValueField="id" SelectedValue='<%# Bind("member_id") %>'> 
       </asp:DropDownList> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lblMemberName" runat="server" Text='<%# Bind("Member.fullname") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField AccessibleHeaderText="Task" HeaderText="Task"> 
      <EditItemTemplate> 
       <asp:TextBox ID="txtMemberTask" runat="server" Text='<%# Bind("description") %>' 
        TextMode="MultiLine"></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lblMemberTask" runat="server" Text='<%# Bind("description") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />  
    </Columns> 
</asp:GridView> 

:

<asp:EntityDataSource ID="TaskSource" 
    DefaultContainerName="webteamEntities" runat="server" 
    ConnectionString="name=webteamEntities" EnableDelete="True" 
    EnableFlattening="False" EnableInsert="True" EnableUpdate="True" 
    EntitySetName="Tasks" Include="Project, Member" /> 
<asp:EntityDataSource ID="MemberSource" 
    DefaultContainerName="webteamEntities" runat="server" 
    ConnectionString="name=webteamEntities" 
    EnableFlattening = "False" 
    EntitySetName="Members" /> 
내가 템플릿 필드 대신 ID 번호의 사용자 친화적 인 데이터를 표시하도록 설정 한 작업 테이블을 표시하기 위해 내 GRIDVIEW에서

그래서 내 datakeynames = "id"가 삭제시 Member.fullname에 액세스하려고하는 이유는 무엇입니까? 그리고 그것도 ... 편집이 잘되는 이유는 무엇입니까?

내가 누락 된 항목이 있습니까?

답변

1

항목 템플릿에서 평가와 바인딩을 바꾸어도 해가되지 않습니다. 바인딩은 2 방향입니다. 평가는 1 가지 방법입니다. Item 템플릿에 Eval 만 있으면 충분합니다.

+0

고맙습니다. – Shadyn

관련 문제