ASP.NET 4.5 модель привязки данных SelectMethod выбросить ошибку
Я запутался с этим новым шаблоном. Все выглядит просто, когда вы читаете учебник. Но самая простая задача, которую я не могу выполнить, - привязать модель данных к GridView. Вот код GridView:
<asp:GridView ID="gvIlves" runat="server" AllowPaging="True" AllowSorting="True" ItemType="GuideOnline_1_.Models.xTourist"
AutoGenerateColumns="False" DataKeyNames="Kod" CssClass="table table-striped tablesorter"
ClientIDMode="Static" PageSize="50" SelectMethod="SelectArrival" UpdateMethod="UpdateArrival">
И выберите метод здесь:
public IQueryable<GuideOnline_1_.Models.xTourist> SelectArrival()
{
var now = DateTime.Today.AddDays(-3);
IQueryable<GuideOnline_1_.Models.xTourist> arrivals = _db.xTourist;
arrivals = arrivals.Where(p => p.Ответственный !=null).Where(p => p.Номер == null).Where(p => p.Датапр >= now);
return arrivals;
}
Это выглядит просто и гладко, но я получил ошибку:когда в DataBoundControl включена подкачка страниц, SelectMethod должен возвращать IQueryable или иметь все эти обязательные параметры: int startRowIndex, int MaximumRows, out int totalRowCount
2 ответа
Решение
Глупая ошибка. Я просто упомянул неправильное имя таблицы в ItemType.
Это работает для меня:
<asp:GridView ID="gvIlves" runat="server" AllowPaging="True" AllowSorting="True" ItemType="WebApplication1.Tourist"
AutoGenerateColumns="True" DataKeyNames="Kod" CssClass="table table-striped tablesorter"
ClientIDMode="Static" PageSize="50" SelectMethod="SelectArrival"></asp:GridView>
Код:
namespace WebApplication1
{
public partial class _Default : Page
{
public IQueryable<Tourist> SelectArrival()
{
return new EnumerableQuery<Tourist>(new List<Tourist>
{
new Tourist{ Kod = "1", Name = "Joe", Age = "35"},
new Tourist{ Kod = "2", Name = "Cliff", Age = "45"},
new Tourist{ Kod = "3", Name = "Dan", Age = "32"},
});
}
}
public class Tourist
{
public string Kod { get; set; }
public string Name { get; set; }
public string Age { get; set; }
}
}