データを更新できるように、編集テンプレートと項目テンプレート内の単一のフォームビューに追加された複数の Web ユーザー コントロールで ASP.NET 4.5 の厳密に型指定されたモデル バインディングを使用しようとしています。
つまり、このような aspx ページがあります。
<asp:FormView ID="FormView1" runat="server"
ItemType="MyDataLayer.MyDataItem"
SelectMethod="FormView1_GetItem"
UpdateMethod="FormView1_UpdateItem"
DataKeyNames="MyDataItemID" >
<EditItemTemplate>
<asp:LinkButton Text="Update" runat="server" CommandName="Update"/>
<uc1:WebUserControl1 runat="server" id="WebUserControl1" />
<uc1:WebUserControl1 runat="server" id="WebUserControl2" />
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton Text="Edit" runat="server" CommandName="Edit" />
<uc1:WebUserControl1 runat="server" id="WebUserControl1" />
<uc1:WebUserControl1 runat="server" id="WebUserControl2" />
</ItemTemplate>
</asp:FormView>
このようなascxユーザーコントロールを使用すると(簡易版)
<%@ Control Language="C#" AutoEventWireup="false"
CodeBehind="WebUserControl1.ascx.cs"
Inherits="WebApplicationTests.WebUserControl1" %>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# BindItem.Name%>'></asp:TextBox>
ユーザーコントロールの内臓をフォームビューのあるページに移動すると機能しますが、ユーザーコントロールでは機能しません。
つまり、新しい「BindItem」を使用してユーザー コントロール フィールドを親ページの Formview データにバインドし、formview ItemType を使用して、データの 1 つの項目を作成し、データのさまざまな部分を保持する複数のコントロールにバインドします。フォームビュー内の同じアイテム。(プロジェクトはすべてを含むモノリシック テーブルに基づいていますが、わかりやすくするためにデータをユーザーに分けたいと考えています)
これを機能させる方法についてのアイデアがある場合、または機能しない理由を誰かが知っている場合、それは素晴らしいことです!