Привет!
Я создаю пользовательский элемент управления, который будет отображать данные в элементе управления GridView. Мы используем многоуровневую архитектуру, и данные, о которых идет речь, извлекаются из нашей базы данных и возвращаются нам как 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 в этой ситуации?
Спасибо.