Привет!
Я создаю пользовательский элемент управления, который будет отображать данные в элементе управления GridView. Мы используем n-уровневую архитектуру, и соответствующие данные извлекаются из нашей базы данных и возвращаются нам в виде ReadOnlyCollection. OurNewObject - это класс, содержащий несколько свойств и пустой конструктор, который не принимает параметров - он находится в следующем пространстве имен: Acme.ObjectModel.
В пользовательском контроле у меня есть следующее:
<asp:GridView ID="ourGrid" runat="server" DataSourceID="ourDataSource">
<columns>
<asp:BoundField DataField="Name" HeaderText="Full Name" />
<asp:BoundField DataField="Gender" HeaderText="Gender" />
<asp:BoundField DataField="BirthYear" HeaderText="Year of Birth" />
<asp:BoundField DataField="JoinDate" HeaderText="Date Joined" />
</columns>
</asp:GridView>
<asp:ObjectDataSource ID="ourDataSource" runat="server" SelectMethod="GetTopUsers" TypeName="Acme.Model.OurNewObject">
</asp:ObjectDataSource>
В коде пользовательского элемента управления у меня есть следующий публичный метод:
public ReadOnlyCollection<OurNewObject> GetTopUsers()
{
return (OurDataProxy.GetJustTheTopUsers());
}
Когда я помещаю пользовательский элемент управления в веб-форму и запускаю ее, я получаю следующее сообщение:
ObjectDataSource 'ourDataSource' не удалось найти неуниверсальный метод 'GetTopUsers', у которого нет параметров.
Итак, мои вопросы:
- Использую ли я ObjectDataSource
неправильно?
- Есть ли более правильный способ использовать ObjectDataSource в этой ситуации?
Спасибо.