2011-09-02 3 views
2

EntityDataSource에 바인딩 된 RadGrid가 있습니다. 일부 열은 바인딩 된 엔터티의 탐색 속성에 바인딩됩니다. 레코드를 삭제하려고하면 다음 오류가 발생합니다.RadGrid가 EntityDataSource에 바인딩 된 경우 자동 삭제 오류

오류 : Sys.WebForms.PageRequestManagerServerErrorException : 'Vehicle.VehicleNo'라는 속성이 삽입, 업데이트 또는 삭제 작업 중에 엔티티에서 발견되지 않았습니다. 바인딩 표현식으로 지정된 특성이 데이터 소스에서 사용 가능한지 확인하십시오.

탐색 속성 대신 일반 외래 키 ID를 사용하도록 선택하면 모든 항목이 작동합니다. 수동으로 처리하면 삭제를 쉽게 얻을 수 있습니다. 그러나 나는 "그냥 자동이. 너무 일을 어떤 아이디어에 삭제할 수있는 방법이있을거야 생각 해요?

<telerik:RadGrid ID="RadGrid1" runat="server" AllowAutomaticDeletes="True" 
        AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 
        DataSourceID="EntityDataSource1" GridLines="None" ShowGroupPanel="True" Skin="Hay" 
        OnItemUpdated="RadGrid1_ItemUpdated" 
        OnItemInserted="RadGrid1_ItemInserted" OnItemCommand="RadGrid1_ItemCommand" 
        Height="400px" Width="700px" CellSpacing="0"> 
        <MasterTableView DataKeyNames="ADChecklistId" DataSourceID="EntityDataSource1" CommandItemDisplay="Top"> 
         <CommandItemSettings AddNewRecordText="Add New Aerial Device Checklist" ShowRefreshButton="false" 
          ShowAddNewRecordButton="true"></CommandItemSettings> 
         <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> 
          <HeaderStyle Width="20px" /> 
         </RowIndicatorColumn> 
         <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> 
          <HeaderStyle Width="20px" /> 
         </ExpandCollapseColumn> 
         <Columns> 
          <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" 
           HeaderText="Edit"> 
          </telerik:GridEditCommandColumn> 
          <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" UniqueName="DeleteCommandColumn" HeaderText="Delete" ConfirmDialogType="RadWindow" ConfirmText="Are you sure you want to delete this record?"> 
          </telerik:GridButtonColumn> 
          <telerik:GridBoundColumn DataField="Vehicle.VehicleNo" FilterControlAltText="Filter VehicleNo column" 
           HeaderText="VehicleNo" SortExpression="Vehicle.VehicleNo" UniqueName="Vehicle.VehicleNo"> 
          </telerik:GridBoundColumn> 
          <telerik:GridBoundColumn DataField="Employee.FirstName" FilterControlAltText="Filter FirstName column" 
           HeaderText="FirstName" SortExpression="Employee.FirstName" UniqueName="Employee.FirstName"> 
          </telerik:GridBoundColumn> 
          <telerik:GridBoundColumn DataField="Employee.LastName" FilterControlAltText="Filter LastName column" 
           HeaderText="LastName" SortExpression="Employee.LastName" UniqueName="Employee.LastName"> 
          </telerik:GridBoundColumn> 
          <telerik:GridBoundColumn DataField="Utility.UtilityName" HeaderText="Utility" SortExpression="Utility.UtilityName" UniqueName="Utility.UtilityName" > 
          </telerik:GridBoundColumn>         
          <telerik:GridDateTimeColumn DataField="CreatedOn" DataType="System.DateTime" FilterControlAltText="Filter CreatedOn column" 
           HeaderText="CreatedOn" SortExpression="CreatedOn" UniqueName="CreatedOn" DataFormatString="{0:MM/dd/yy}"> 
          </telerik:GridDateTimeColumn> 
          <telerik:GridBoundColumn DataField="CreatedBy" FilterControlAltText="Filter CreatedBy column" 
           HeaderText="CreatedBy" SortExpression="CreatedBy" UniqueName="CreatedBy"> 
          </telerik:GridBoundColumn> 
          <telerik:GridDateTimeColumn DataField="ModifiedOn" DataType="System.DateTime" FilterControlAltText="Filter ModifiedOn column" 
           HeaderText="ModifiedOn" SortExpression="ModifiedOn" UniqueName="ModifiedOn" DataFormatString="{0:MM/dd/yy}"> 
          </telerik:GridDateTimeColumn> 
          <telerik:GridBoundColumn DataField="ModifiedBy" FilterControlAltText="Filter ModifiedBy column" 
           HeaderText="ModifiedBy" SortExpression="ModifiedBy" UniqueName="ModifiedBy"> 
          </telerik:GridBoundColumn> 
         </Columns> 
         <EditFormSettings> 
          <EditColumn FilterControlAltText="Filter EditCommandColumn column"> 
          </EditColumn> 
         </EditFormSettings> 
        </MasterTableView> 
        <ClientSettings AllowDragToGroup="True" EnablePostBackOnRowClick="true"> 
         <Scrolling AllowScroll="True" UseStaticHeaders="True" /> 
         <Resizing AllowColumnResize="true" ClipCellContentOnResize="false" /> 
        </ClientSettings> 
        <FilterMenu EnableImageSprites="False"> 
        </FilterMenu> 
        <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> 
        </HeaderContextMenu> 
       </telerik:RadGrid> 
<asp:EntityDataSource ID="EntityDataSource1" runat="server" AutoGenerateWhereClause="True" 
    ConnectionString="name=MSOpsEntities" DefaultContainerName="MSOpsEntities" 
    EnableFlattening="False" EnableDelete="True" EntitySetName="ADChecklists" 
    Include="Vehicle, Employee, Utility" OrderBy="it.CreatedOn DESC" 
    OnSelecting="EntityDataSource1_Selecting" 
    ondeleting="EntityDataSource1_Deleting"> 
    <WhereParameters> 
     <asp:SessionParameter Name="UtilityId" SessionField="utilityId" Type="Int32" /> 
    </WhereParameters> 
</asp:EntityDataSource> 

답변

0

탐색 속성을 포함하는 GridBoundColumn들에 ReadOnly="true"을 설정해보십시오,이 날 위해 일했습니다. 아마 또한 당신에게

+0

나는 새로운 바인딩되지 않은 확인란 열을 추가했지만 빈 속성 값/키가 Hashtable에 표시된다는 것을 알았으므로 업데이트하려고하는 것으로 추정됩니다. 이 빈 값. 언 바운드 확인란은 어떻게 사용합니까? – PeterX

관련 문제