環境:
RadGrid を使用すると、自動 CRUD 操作を組み込むことができます。ただし、これらの操作はソース/親テーブルでのみ可能のようです。
<asp:LinqDataSource ID="myLinqDataSource" runat="server"
ContextTypeName="ExempleDataContext" TableName="Order"/>
<telerik:RadGrid ID="myRadGrid" runat="server" DataSourceID="myLinqDataSource">
<MasterTableView .../>
</telerik:RadGrid>
親または子のプロパティを表示できますが:
<telerik:GridBoundColumn DataField="CustomerId" HeaderText="CustomerId"
SortExpression="CustomerId" UniqueName="CustomerId"/>
<telerik:GridBoundColumn DataField="Product.Name" HeaderText="Product.Name"
SortExpression="Product.Name" UniqueName="Product.Name" />
そして、それらを EditForm にバインドします。
Customer Id :
<asp:TextBox ID="tb_CustomerId" runat="server"
Text='<%#Bind("CustomerId")%>' AutoPostBack="false" />
Product Name:
<asp:TextBox ID="tb_Product_Name" runat="server"
Text='<%#Bind("Product.Name")%>' AutoPostBack="false" />
ただし、「Father フィールド」(ここではCustomerId
) のみが更新されます。
WhenProduct.Name
は無視され、エラーはスローされません。
dbml スキーマの例:
私が試したこと:
- 子主キーを Grid に追加し
DataKeyNames
ます。 - を追加
RetrieveDataTypeFromFirstItem="true"
しMasterTableView
て、サブアイテムからタイプを取得するように彼に強制しようとしました。 - そして、手動挿入と ItemCommand イベントを使用して終了する、古典的なテレリック ブードゥー。
注意:
- インプレースおよび自動更新が機能します。テンプレート化されたフォームのみがバインドに失敗しました。