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>
我已經這樣做 - 但是我剛剛添加了一個新的未綁定複選框列,並且我注意到空白屬性值/ key出現在Hashtable中 - 因此假設它試圖更新這個空白值。我如何有一個未綁定的複選框? – PeterX