Источник данных не поддерживает подкачку данных на стороне сервера.

У меня есть gridview:

<asp:gridview id="GridView1" runat="server" forecolor="ActiveCaptionText" backcolor="#FFFF99" gridlines="None" onpageindexchanging="GridView1_PageIndexChanging" allowpaging="True" cssclass="gridrownormal" onpageindexchanged="GridView1_PageIndexChanged">



 </asp:gridview>

и использовать этот код для привязки данных:

GridView1.DataSource = null;

 List<searchengineeo> docs = Search(txtSearch1.Text, ddlSelectCondition1.Text);

 var query18 = (from c in docs select new { c.DocNO, c.DocType, c.Title, c.PublisherName, c.PublishedDate}).ToList().Distinct();

 GridView1.DataSource = query19;
 GridView1.DataBind();
</searchengineeo>

если я устанавливаю allowpaging в false, все вещи в порядке, но если установить true, я вижу эту ошибку:

"Источник данных не поддерживает подкачку данных на стороне сервера".

2 ответа

Это связано с тем, что при включении этого свойства в gridview использует встроенную функцию подкачки, которая может работать только с источниками данных, расширяющими интерфейс ICollection. В этом случае ваш объект (query19) не поддерживает его. Вы должны быть способны заставить его работать, инвертируя вызовы метода расширения linq... вместо этого...

ToList ().Distinct ()

Сделай это....

Distinct().ToList()

Это должно работать


Возможно, это связано с тем, что вы пытаетесь получить данные с помощью "var query18", а затем присваиваете значение "GridView1.DataSource" с "query19" или это опечатка?

Другое дело - попробовать создать экземпляр "GridView1.DataSource" вместо null.

licensed under cc by-sa 3.0 with attribution.