-1

環境:

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 スキーマの例:

Dbmlの例

私が試したこと:

  • 子主キーを Grid に追加しDataKeyNamesます。
  • を追加RetrieveDataTypeFromFirstItem="true"MasterTableViewて、サブアイテムからタイプを取得するように彼に強制しようとしました。
  • そして、手動挿入と ItemCommand イベントを使用して終了する、古典的なテレリック ブードゥー。

注意:

  • インプレースおよび自動更新が機能します。テンプレート化されたフォームのみがバインドに失敗しました。
4

1 に答える 1