데이터 원본이 서버 측 데이터 페이징을 지원하지 않습니다.
내 화면에 그리드 보기가 있는데 호출을 허용하려면 그리드 보기가 필요합니다.
마크업:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="appID" HeaderText="appID" SortExpression="appID" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetBookingId"
TypeName="AppointmentRepository">
<SelectParameters>
<asp:Parameter Name="maximumRows" Type="Int32" />
<asp:Parameter Name="startRowIndex" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
코드백:
ObjectDataSource1.SelectParameters["maximumRows"].DefaultValue = "10";
ObjectDataSource1.SelectParameters["startRowIndex"].DefaultValue = "0";
LINQ 쿼리:
public IQueryable<tblAppointment> GetBookingId(int maximumRows, int startRowIndex)
{
var result = (FROM a IN dc.tblAppointments
SELECT a).Skip(startRowIndex).Take(maximumRows);
}
그러나 다음 오류가 표시됩니다.
데이터 원본이 서버 측 데이터 페이징을 지원하지 않습니다.
내가 뭘 잘못하고 있는 거지?
간단한ToList()
당신의 결과에 따라 var가 작동해야 합니다.
편집: 답변 아래 댓글에서 설명한 것처럼, 오류의 원인은 데이터 소스가 I 수집을 구현해야 하기 때문입니다.I numberable은 그렇지 않습니다, 당신이 할 때.ToList()
I 수집을 구현하는 목록으로 변환합니다.
제네릭을 사용할 수 있습니다.List<T>
샘플 코드 스니펫을 참조하십시오.
public List<Company> GetContactList(int startindex)
{
string path = Server.MapPath("~/contacts.xml");
XDocument xd = XDocument.Load(path);
IEnumerable<Company> results = (from items in xd.Elements("Company").Elements("Contact")
select new Company
{
Id = items.Element("ID").Value,
Photo = (string)items.Element("photo").Value,
Name = (string)items.Element("Name").Value,
BloodGroup = (string)items.Element("Bg").Value,
Dob = (string)items.Element("dob").Value,
Anniversery = (string)items.Element("avd").Value,
Mobile = (string)items.Element("cnum").Value,
designation = (string)items.Element("desig").Value,
Team = (string)items.Element("team").Value
}).Skip(startindex*10).Take(10);
return (List<Company>) results;
}
DataReader 대신 DataSet/DataTable을 사용할 수도 있습니다.
.ToList()
데이터 소스의 마지막 부분에서 아래와 같이 작업을 할당합니다.
gvCaseLabelsLeft.DataSource = caseLabelsList.OrderBy(c=>c.caseLabelNumber).ToList();
코드를 다음으로 변경했습니다.
public List<string> ListofNewsTitle()
{
var query = from n in db.NewsEvents
orderby n.NewsDate descending
select n.NewsTitle;
return query.ToList();
}
ObjectDataSource에서 그냥 추가enablePaging="true"
그건 효과가 있을거에요.
LINQ 쿼리:
ProductController.cs :
List<Product> products= productModel.GetProducts(start, offset);
ProductModel.cs :
public List<Product> GetProducts(int start, int offset)
{
IEnumerable<Product> query = from m in db.Products
orderby m.Id descending
select m;
query = query.Skip(start).Take(offset);
return query.ToList();
}
Sqldata Reader를 사용하는 경우 페이징을 지원하지 않습니다.
이 오류에 대한 해결책은 일반 목록 컬렉션, 데이터 테이블, 데이터 세트 등의 데이터 소스를 사용하여 그리드 보기를 바인딩하는 것입니다.
이 기사를 사용해 보십시오. https://www.aspsnippets.com/Articles/ASPNet-GridView-The-data-source-does-not-support-server-side-data-paging.aspx
요약하자면, 이 선들을 사용해 보세요.
private void BindGrid()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT CustomerId, ContactName, Country FROM Customers"))
{
cmd.Connection = con;
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
GridView1.DataSource = sdr;
GridView1.DataBind();
}
con.Close();
}
}
}
protected void OnPaging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
this.BindGrid();
}
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true"
OnPageIndexChanging="OnPaging">
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" />
<asp:BoundField DataField="ContactName" HeaderText="ContactName" />
<asp:BoundField DataField="Country" HeaderText="Country" />
</Columns>
언급URL : https://stackoverflow.com/questions/1661292/the-data-source-does-not-support-server-side-data-paging
'programing' 카테고리의 다른 글
Angular 2 - 상위 항목에서 하위 항목에 대해 메서드를 트리거하는 방법 (0) | 2023.08.08 |
---|---|
npx 명령을 찾을 수 없습니다. (0) | 2023.08.08 |
Oracle이 "count(*)"에 할당하는 SQL 데이터 유형은 무엇입니까? (0) | 2023.08.08 |
간단한 Bittorrent 애플리케이션을 작성하는 방법은 무엇입니까? (0) | 2023.08.08 |
jQuery가 요소를 찾지 못했는지 여부 확인 (0) | 2023.08.08 |