ああ..私は深すぎます。
メインページには、更新パネル内にDataGridが含まれています。
このデータグリッドの列の1つは、ユーザーコントロールです。
このユーザーコントロールには、更新パネル内に独自のデータグリッドがあります。
メインページが読み込まれます。ユーザーは、メインページのデータグリッドをバインドするファイルを選択します。datagridrow行がロードされたので、ユーザーはユーザーコントロールをクリックします。
コントロールは、モーダルポップアップdivマジックを使用して表示されます。コントロールの目的は、ストアドプロシージャを呼び出してルックアップを実行することです。ユーザーが検索する値を入力し、[検索]をクリックします。
btnSearchイベントが発生し、ストアドプロシージャが呼び出され、データがネットワークを介して返送され、ユーザーコントロールが独自のデータグリッドをバインドしますが、コントロールのグリッドが更新されてユーザーに表示されることはありません。
(私が思うに)起こっていることは、ユーザーコントロールがデータをバインドすると、メインページのデータグリッドも再バインドされ、ユーザーにコンテンツを表示する前にユーザーコントロールが再インスタンス化されることです。
メインページのスクリプトマネージャーは次のとおりです。
<asp:ScriptManager ID="sm1" runat="Server" EnablePartialRendering="true">
</asp:ScriptManager>
メインページの更新パネルは次のとおりです。
<asp:UpdatePanel ID="upPnlLookup" runat="server" UpdateMode="Conditional">
<ContentTemplate>
メインページのデータグリッド内のユーザーコントロールは次のとおりです。
<asp:TemplateColumn>
<ItemTemplate>
<uc1:EmployeeLookup ID="el" runat="Server" Optional="True" />
</ItemTemplate>
</asp:TemplateColumn>
ユーザーコントロールの更新パネルは次のとおりです。
<asp:UpdatePanel ID="upPnlLookup" runat="server" UpdateMode="Conditional">
<ContentTemplate>
ユーザーコントロールのグリッドは次のとおりです。
<asp:GridView ID="grdvwLookupResults"
runat="server"
AutoGenerateColumns="False"
AllowPaging="True"
OnPageIndexChanging="grdvwLookupResults_PageIndexChanging"
Width="100%"
OnRowCommand="grdvwLookupResults_RowCommand"
OnSorting="grdvwLookupResult_Sorting"
EmptyDataText="No data found matching that criteria."
AllowSorting="True" >
<Columns>
<asp:ButtonField CommandName="Select" Text="Select" />
<asp:BoundField DataField="ID" HeaderText = "Employee ID" SortExpression="ID" />
<asp:BoundField DataField="FullName" HeaderText="Emlployee Name" SortExpression="FullName" />
<asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" Visible="false" />
</Columns>
</asp:GridView>
これをどのように配線するかについての手がかりは大歓迎です。