ASP.NET 中 GridView 中的 PageIndexChanging
Posted
技术标签:
【中文标题】ASP.NET 中 GridView 中的 PageIndexChanging【英文标题】:PageIndexChanging in GridView in ASP.NET 【发布时间】:2011-06-07 15:03:54 【问题描述】:我有一个用于显示数据集结果的 gridview。 问题是我在其中使用分页。但是当我点击页面 # 它说我还没有处理这个事件。需要重新绑定数据集???
谢谢
【问题讨论】:
【参考方案1】:试试下面的代码:
protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
FillGrid();
grdView.PageIndex = e.NewPageIndex;
grdView.DataBind();
【讨论】:
谢谢..这行得通...我以前不知道这个页面索引会增加。Viewstate
应该是首选以避免页面更改事件上过多的数据库调用【参考方案2】:
试试看
在页面加载中
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
loadGrid();
在页面索引变化中
private void loadGrid()
using (your_bankEntities context = new your_bankEntities()) //use your connection .edmx
var jmDados = (from jm in context.yourdbo orderby jm.your fieldkey
select new
jm.Field1,
jm.Field2,
jm.Field3,
jm.Field4,
........
jm.n
).ToList();
GridView1.DataSource = jmDados;
GridView1.DataBind();
在页面索引变化中
GridView1.PageIndex = e.NewPageIndex;
loadGrid();
【讨论】:
【参考方案3】:在VB.net中,它和C#没有太大区别,你只是去掉每行末尾的分号
Private Sub myGridview_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles myGridview.PageIndexChanging
LoadGridView() //Call your method to load the data into the grid.
myGridview.PageIndex = e.NewPageIndex
myGridview.DataBind()
End Sub
【讨论】:
【参考方案4】:你应该在绑定数据之前设置.PageIndex!否则,您将需要额外的点击,这实际上 加倍 BindData 方法调用。以下是我测试过的vb代码。
Private Sub GridViewL_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridViewL.PageIndexChanging
GridViewL.PageIndex = e.NewPageIndex
BindData() ' your method to bind data to the grid
End Sub
【讨论】:
以上是关于ASP.NET 中 GridView 中的 PageIndexChanging的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net 中处理 Gridview 控件中的文本框?
通过asp.net中的数据表在asp gridview中添加按钮列
从 ASP.NET GridView 更新中获取 textarea 中的文本
向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作