これは基本的な質問であり、正確な検索用語が不足していることが答えを見つけられない理由だと思います。
私が取り組んでいるデータベースには、約6行と5フィールドしかない小さなテーブルが含まれています。時々変更されるため、CRUD機能が必要ですが、12行を超えて拡張されることはほとんどありません。
ASP.NET Webアプリケーションには、ビジネスロジックとデータアクセス層があります。
疑似「ページング」コントロールとしてdropDownListを使用して、detailsViewに表示する行を選択したいと思います。
迅速で厄介な解決策は、ASPに2つのobjectDataSourceコントロールを配置することです。1つはselectパラメーターを使用します。
<asp:ObjectDataSource ID="DDDataSource" runat="server" TypeName="PICUdrugs.BLL.referenceBL"
SelectMethod="getReferences"/>
<asp:DropDownList ID="RefAbrevDDL" runat="server" AutoPostBack="True"
DataTextField="abbrev" DataSourceID="DDDataSource"
DataValueField="drugReferenceID" ViewStateMode="Enabled" >
</asp:DropDownList>
<asp:ObjectDataSource ID="SelRefObjDataSrc" runat="server" SelectMethod="getReferences"
UpdateMethod="updateReference" DeleteMethod="deleteReference" TypeName="PICUdrugs.BLL.referenceBL"
OnUpdated="reference_CRUD" DataObjectTypeName="PICUdrugs.DAL.drugReference"
ConflictDetection="CompareAllValues" OldValuesParameterFormatString="orig{0}">
<SelectParameters>
<asp:controlparameter name="refID" controlid="RefAbrevDDL" propertyname="SelectedValue"/>
</SelectParameters>
</asp:ObjectDataSource>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataSourceID="SelRefObjDataSrc"
CssClass="DetailView">
<Fields>
<asp:DynamicField DataField="referenceDescription" HeaderText="Reference Description" />
.....[remaining fields].....
これは機能しますが、データベースにそのような同様の情報を2回照会しているのは気になります。objectDataSourceを利用する(つまり、detailsViewの特定のイベントハンドラーを作成する必要がない)が、単一のデータベースクエリで列挙可能なリストを作成し、両方のコントロールが同じオブジェクトにアクセスできるようにするための効率的で適切なソリューションはありますか(? detailsViewページングコントロール?)?コードビハインドはc#ですが、例やリンクがあればvbで問題ありません。
あなたの考えに感謝します(それらの考えが怠惰になるのをやめ、両方のobjectDataSourcesを捨てて、detailsviewイベントハンドラーを手動で書くだけであっても)-いつも感謝しています。