[英]GridView paging control issue
我正在使用asp.net的Grid View Web控件,在那我使用了分页控件,因此我在其中处理了分页事件,但是如果我单击2,3,4 ...则不显示数据,因此它不显示链接一个结果集..它没有给出任何异常,但只显示第一页没有任何内容。下面是代码:
public partial class Main : System.Web.UI.Page
{
protected string PostBackOption = "";
protected void Page_Load(object sender, EventArgs e)
{
this.check.Text = " ";
if (Page.IsPostBack)
{
PostBackOption = "$(\"#dialog\").dialog(\"open\");";
}
}
List<Allemployees> result1 = new List<Allemployees>();
protected void Button1_Click(object sender, EventArgs e)
{ // Show all the employees currently in the table
GridView1.DataSource = null;
GridView1.DataBind();
using (var db = new AdventureWorks2012_DataEntities())
{
List<Allemployees> result = new List<Allemployees>();
var query = from b in db.Employees
join p in db.People on b.BusinessEntityID equals p.BusinessEntityID
orderby p.BusinessEntityID
select new
{
b.BusinessEntityID,
p.FirstName,
p.LastName
};
foreach (var item in query)
{
Allemployees t1 = new Allemployees();
t1.BusinessEntityId = item.BusinessEntityID;
t1.FirstName = item.FirstName;
t1.LastName = item.LastName;
result1.Add(t1);
}
GridView1.DataSource = result1;
GridView1.DataBind();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = result1;
GridView1.DataBind();
}
}
原因是单击链接页面回发时, result1
将没有任何值。 如果要在回发时保留数据,则必须使用viewstate,session等。
在Button1_Click
执行以下操作
protected void Button1_Click(object sender, EventArgs e)
{
// your code
GridView1.DataBind(); // add below line after this line
Session["Data"] = result1;
}
在GridView1_PageIndexChanging
方法中
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
var result = (List<Allemployees>)Session["Data"];
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = result;
GridView1.DataBind();
}
在页面更改功能中删除GridView1.DataSource = result1行。
将您的GridView1_PageIndexChanging更改为此:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gridview = (GridView)sender;
gridview.PageIndex = e.NewPageIndex;
Button1_Click(null, null);
gridview.DataBind();
}
确保将GridView1 AllowPaging设置为true。
让我知道结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.