使用实体框架在asp.net中自定义分页,而不使用数据源控件
我试图在gridview中实现自定义分页,而不使用任何数据源控件。到目前为止,我没有找到任何好的/完整的教程 以下是我创建gridview的方式:使用实体框架在asp.net中自定义分页,而不使用数据源控件,asp.net,entity-framework,Asp.net,Entity Framework,我试图在gridview中实现自定义分页,而不使用任何数据源控件。到目前为止,我没有找到任何好的/完整的教程 以下是我创建gridview的方式: <asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="10" onpageindexchanging="GridView1_PageIndexChanging" ShowFooter="True"> </a
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="10"
onpageindexchanging="GridView1_PageIndexChanging" ShowFooter="True">
</asp:GridView>
通过以下链接,您将能够得到答案。通过传递页码和页面大小,分页已通过sql server完成
我想使用实体框架来完成。我已经创建了edmx。我不想使用存储过程您有没有想过如何解决链接问题?我也在做同样的事情。这似乎是一个非常常见的场景,我也没有看到太多文档。
protected void btnSearch_Click(object sender, EventArgs e)
{
using (context = new TrackForceDataEntities())
{
try
{
string[] arr = lstStates.Items.Cast<ListItem>().Select(i => i.Text).ToArray();
var searchResults = context.data_vault.Where(d => arr.Contains(d.STATE)).OrderByDescending(d=>d.STATE);
GridView1.DataSource = searchResults;
GridView1.DataBind();
}
catch (Exception exception)
{
Response.Write(exception.Message);
}
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
using (context = new TrackForceDataEntities())
{
try
{
// var searchResults = context.data_vault.Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d => d.dv_id).Take(10).Skip(2);
//var selection = lstStates.Items(i => i.Text).ToArray();
//var result = context.data_vault.Where(x => selection.Contains(x.Prop));
string[] arr = lstStates.Items.Cast<ListItem>().Select(i => i.Text).ToArray();
var result = context.data_vault.Where(d => arr.Contains(d.STATE)).OrderByDescending(d => d.STATE).Skip(e.NewPageIndex * GridView1.PageSize)
.Take(GridView1.PageSize)
.ToList();
//var result = context.data_vault.Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d => d.STATE).Skip(e.NewPageIndex * GridView1.PageSize).Take(GridView1.PageSize).ToList();
//// this is very important part too
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = result;
GridView1.DataBind();
}
catch (Exception exception)
{
Response.Write(exception.Message);
}
}
}