Это должен быть основной вопрос, и я полагаю, что отсутствие точных условий поиска является причиной, по которой я не могу найти ответ.
База данных, над которой я работаю, содержит небольшую таблицу всего с 6 строками и 5 полями. Он действительно требует функциональности CRUD, поскольку время от времени он будет меняться, но почти наверняка никогда не будет расширяться за пределы дюжины строк.
Веб-приложение ASP.NET имеет бизнес-логику и уровень доступа к данным.
Я хотел бы иметь dropDownList в качестве элемента управления псевдо «разбиения на страницы», чтобы выбрать, какую строку отображать в DetailsView.
Быстрое и неприятное решение - поместить в ASP 2 элемента управления objectDataSource, один с параметром 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].....
Хотя это работает, меня беспокоит, что я дважды запрашиваю в базе данных подобную информацию. Существуют ли какие-либо эффективные / изящные решения для использования преимущества objectDataSource (т.е. отсутствие необходимости писать конкретные обработчики событий для detailsView), но создание перечисляемого списка для одного запроса к базе данных и обеспечение доступа обоих элементов управления к одному и тому же объекту (? Используйте подробностиПросмотреть элемент управления подкачкой?)? код позади - С #, но vb в порядке, если у кого-то есть примеры / ссылки.
Спасибо за ваши мысли (даже если эти мысли заключаются в том, чтобы перестать лениться, отказаться от обоих objectDataSources и просто написать обработчики событий detailsview вручную) - всегда приветствую.