私の問題のシナリオは次のとおりです。
1つのGridviewAがobjectdatasourceAにバインドされています。GridviewA行をクリックすると、別のobjectdatasourceBがGridViewAからIDを選択し、GridviewBのレコードをフェッチするようにします。これはmasterdetailのようなものです。
これを行うことはできますか?また、javascript/jqueryscriptを使用してスムーズにする方法を教えてください。
私の問題のシナリオは次のとおりです。
1つのGridviewAがobjectdatasourceAにバインドされています。GridviewA行をクリックすると、別のobjectdatasourceBがGridViewAからIDを選択し、GridviewBのレコードをフェッチするようにします。これはmasterdetailのようなものです。
これを行うことはできますか?また、javascript/jqueryscriptを使用してスムーズにする方法を教えてください。
内部のobjectdatasourceは次のようになります。
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmethod"
TypeName="namespace">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="YourFieldName" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
最初に、gridview A の dataKey プロパティを基になるオブジェクトの ID プロパティ (または objectDataSource B の select メソッドに渡したいもの) に設定したことを確認します。
次に、objectDataSource B に移動して構成し、パラメーターを受け入れる select メソッドを選択して、[次へ] をクリックします。そのパラメーターをどこから取得するかを尋ねられ (コントロール、セッション、その他のものから選択できると思います)、コントロールを選択すると、ページ上のすべてのコントロールのリストが作成され、グリッドビュー A が選択されます。
これにより、選択した行 dataKey が gridview A から objectDataSource B にリンクされたメソッドに渡されます。select コードが実行され、gridview B に必要なサブセットが表示されます。gridView A で新しい行を選択すると、gridview B が自動的に更新され、必要なデータが表示されます。
メソッドが正しく設定されていれば、コード ビハインドをほとんど書かずにこれを行うことができます。これを行う場合は、レコードセットのサイズによっては帯域幅が非常に大きくなる可能性があるため、使用可能なキャッシュ方法のいくつかを確認してください..