DataGrid自定义分页如何设置,分页原理是什么,当前页<asp:label id="lblcurrent" runat="server" text="1"></asp:label>
<asp:linkButton id="lbtnNext" runat="server" onclick="lbtnNext_Click" text="下一页"></linkButton>
public lbtnsreach_Click() //单击查询,显示所有查询结果
{
DataBind();
}
public void DataBind()
{
DataGrid.AllowPaging = true;
DataGrid.PageSize = 5;
DataGrid.VirtualItemCount=dataset.table[0].rows.count;
DataGrid.DataSource=dataset;
DataGrid.DataBind();
}
protected void lbtnNext_Click()
{
if(DataGrid.CurrentPageIndex<0 & DataGrid.CurrentPageIndex==DataGrid.PageCount-1)
{
DataGrid.CurrentPageIndex +=1;
DataBind();
}
}问下,自定义分页这样写对不对;错在哪;为什么点了只显示第一页的内容.
<asp:linkButton id="lbtnNext" runat="server" onclick="lbtnNext_Click" text="下一页"></linkButton>
public lbtnsreach_Click() //单击查询,显示所有查询结果
{
DataBind();
}
public void DataBind()
{
DataGrid.AllowPaging = true;
DataGrid.PageSize = 5;
DataGrid.VirtualItemCount=dataset.table[0].rows.count;
DataGrid.DataSource=dataset;
DataGrid.DataBind();
}
protected void lbtnNext_Click()
{
if(DataGrid.CurrentPageIndex<0 & DataGrid.CurrentPageIndex==DataGrid.PageCount-1)
{
DataGrid.CurrentPageIndex +=1;
DataBind();
}
}问下,自定义分页这样写对不对;错在哪;为什么点了只显示第一页的内容.
解决方案 »
- MVC是如何寻找视图的,搞不懂了,求解?
- 简单工厂
- 关于参数传递的问题?
- 关于 Uri.EscapeDataString 的问题
- 这咱情况下的DataGrid绑定事件中要如何添加JS脚本?
- 请高手推荐一些常用的Javascript函数(验证,前台后台数据交换等等)
- datagrid没有选择列,单击一行则选中
- 简单的问题, 我能否在某下操作后先弹出个对话框,然后转向另外个页面
- 如何产生某一指定目录下唯一不重复的文件名?
- 分别按年,季度,月,日期范围一个统计图,思归等高手请进!
- |zyciis| 第二贴 但 ASP.NET能否把指定的HTML页面生成JPG文件 提示:前线程不在单线程单元中,因此无法实例化 ActiveX 控件
- 新闻的内容页问题(人人都有分)
this.dgNewManage.CurrentPageIndex ++;
在DataGrid1_PageIndexChanged中写
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataBlind()
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" EmptyDataText="没有符合条件记录!" Width="100%" OnPageIndexChanging="GridView1_PageIndexChanging" >
<Columns>
</Columns>
<PagerTemplate>
<div align="center">
<table>
<tr>
<td>
第<asp:Label ID="lblPageIndex" runat="server" Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:Label>页
共<asp:Label ID="lblPageCount" runat="server" Text="<%# ((GridView)Container.Parent.Parent).PageCount %>"></asp:Label>页
<asp:LinkButton ID="btnFirst" runat="server" CausesValidation="False" CommandArgument="First"
CommandName="Page" Text="首页"></asp:LinkButton>
<asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandArgument="Prev"
CommandName="Page" Text="上一页"></asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandArgument="Next"
CommandName="Page" Text="下一页"></asp:LinkButton>
<asp:LinkButton ID="btnLast" runat="server" CausesValidation="False" CommandArgument="Last"
CommandName="Page" Text="尾页"></asp:LinkButton>
<asp:TextBox ID="txtNewPageIndex" runat="server" Text="<%# ((GridView)Container.Parent.Parent).PageIndex + 1%>"
Width="20px"></asp:TextBox>
<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-1"
CommandName="Page" Text="GO"></asp:LinkButton>
</td>
</tr>
</table>
</div>
</PagerTemplate>
</asp:GridView>
在PageIndexChanging事件中写翻页代码: protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gvw = (GridView)sender;
if (e.NewPageIndex < 0)
{
TextBox pageNum = (TextBox)gvw.BottomPagerRow.FindControl("txtNewPageIndex");
int Pa = int.Parse(pageNum.Text);
if (Pa <= 0)
{
gvw.PageIndex = 0;
}
else
{
gvw.PageIndex = Pa - 1;
}
}
else
{
gvw.PageIndex = e.NewPageIndex;
}
DataBind(); //数据绑定
}
protected void DataGrid1_PageIndexChanged(object sender, GridViewPageEventArgs e)
{
DataGrid1.PageIndex = e.NewPageIndex;}
加上这个就可以了
不是都是指定DataGrid.CurrentPageIndex为下一页吗。写在pageIndexChang事件我也试了,不过还是一样结果,只显示了第一页内容!
GridView1.PageIndex = e.NewPageIndex
'重新绑定GridView上的Data
BindData()
End Sub
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="lblPageCount" runat="server"></asp:Label>
</td>
<td>
<asp:Label ID="lblCurrentIndex" runat="server"></asp:Label>
</td>
<td>
<asp:LinkButton ID="btnFirst" runat="server" CommandArgument="0" ForeColor="navy"
OnClick="PagerButtonClick"></asp:LinkButton> </td>
<td>
<asp:LinkButton ID="btnPrev" runat="server" CommandArgument="prev" ForeColor="navy"
OnClick="PagerButtonClick"></asp:LinkButton> </td>
<td>
<asp:LinkButton ID="btnNext" runat="server" CommandArgument="next" ForeColor="navy"
OnClick="PagerButtonClick"></asp:LinkButton> </td>
<td>
<asp:LinkButton ID="btnLast" runat="server" CommandArgument="last" ForeColor="navy"
OnClick="PagerButtonClick"></asp:LinkButton> </td>
<td><input class="button" onclick="checkAll()" type="button" value="全选" />
<asp:dropdownlist id="opera" runat="server">
</asp:dropdownlist>
<asp:button id="op" runat="server" cssclass="button" onclick="op_Click" text="执行操作" /></td>
</tr>
</table>
</div>
Code.cs
private void ShowStats()
{
lblCurrentIndex.Text = "第 " + (DataGrid1.CurrentPageIndex + 1).ToString() + " 页";
lblPageCount.Text = "总共 " + DataGrid1.PageCount.ToString() + " 页";
btnFirst.Text = "首页";
btnPrev.Text = "上一页";
btnNext.Text = "下一页";
btnLast.Text = "尾页";
if (DataGrid1.CurrentPageIndex == 0)
{
btnFirst.Enabled = false;
btnPrev.Enabled = false;
}
else
{
btnFirst.Enabled = true;
btnPrev.Enabled = true;
}
if (DataGrid1.CurrentPageIndex == DataGrid1.PageCount - 1)
{
btnLast.Enabled = false;
btnNext.Enabled = false;
}
else
{
btnLast.Enabled = true;
btnNext.Enabled = true;
}
} public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch (arg)
{
case "next":
if (DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
{
DataGrid1.CurrentPageIndex += 1;
}
break;
case "prev":
if (DataGrid1.CurrentPageIndex > 0)
{
DataGrid1.CurrentPageIndex -= 1;
}
break;
case "last":
DataGrid1.CurrentPageIndex = (DataGrid1.PageCount - 1);
break;
default:
DataGrid1.CurrentPageIndex = System.Convert.ToInt32(arg);
break;
}
newslist();
}
DataGrid自带的分页导航只显示了总页1......
这个是软件问题还是什么问题
DataTable里面的数据是分别从2个DataSet中循环获取的,感觉单击下一页的时候重新绑定数据,.CurrentPageIndex属性没有作用一样.
{
if(DataGrid.CurrentPageIndex <0 & DataGrid.CurrentPageIndex==DataGrid.PageCount-1)
{
DataGrid.CurrentPageIndex +=1;
DataBind();
}
//if(DataGrid.CurrentPageIndex <0 & DataGrid.CurrentPageIndex==DataGrid.PageCount-1)
条件有问题吧,你点下一页的时候没有执行第二次绑定,你监视下运行情况
if(DataGrid.CurrentPageIndex <= DataGrid.PageCount-1) 你分页可以用四个Linkbutton来做
<asp:linkbutton id=LinkButton1 onclick=PagerButtonClick runat="server" CommandArgument="first">首页</asp:linkbutton>
<asp:linkbutton id=LinkButton2 onclick=PagerButtonClick runat="server" CommandArgument="pre">上一页</asp:linkbutton>
<asp:linkbutton id=LinkButton3 onclick=PagerButtonClick runat="server" CommandArgument="next">下一页</asp:linkbutton>
<asp:linkbutton id=LinkButton4 onclick=PagerButtonClick runat="server" CommandArgument="last">最后一页</asp:linkbutton>public void PagerButtonClick(object sender,EventArgs e)
{ string arg=((LinkButton)sender).CommandArgument;
switch(arg)
{
case "next":
if (dgFile.CurrentPageIndex<(dgFile.PageCount-1))
{
dgFile.CurrentPageIndex+=1;
LinkButton1.Enabled=true;
LinkButton2.Enabled=true;
LinkButton3.Enabled=true;
LinkButton4.Enabled=true;
}
if (dgFile.CurrentPageIndex==(dgFile.PageCount-1))
{
LinkButton3.Enabled=false;
LinkButton4.Enabled=false; }
break;
case "pre":
if(dgFile.CurrentPageIndex>0)
{
dgFile.CurrentPageIndex-=1;
LinkButton1.Enabled=true;
LinkButton2.Enabled=true;
LinkButton3.Enabled=true;
LinkButton4.Enabled=true;
}
if(dgFile.CurrentPageIndex==0)
{
LinkButton1.Enabled=false;
LinkButton2.Enabled=false;
}
break;
case "last":
{
dgFile.CurrentPageIndex=dgFile.PageCount-1;
LinkButton3.Enabled=false;
LinkButton4.Enabled=false;
LinkButton1.Enabled=true;
LinkButton2.Enabled=true;
break;
}
default:
{
dgFile.CurrentPageIndex=0;
LinkButton1.Enabled = false ;
LinkButton2.Enabled = false ; LinkButton3.Enabled = true ;
LinkButton4.Enabled = true ;
break;
}
} //GetSource();
//GetDataSource();
BindGrid(); //这里调用你的
//labCount.Text = tb.Rows.Count.ToString();
//ShowStatus(); }
{
if(DataGrid.CurrentPageIndex <0 & DataGrid.CurrentPageIndex==DataGrid.PageCount-1)
{
DataGrid.CurrentPageIndex +=1;
DataBind();
}
} 这个判断有问题
protected void lbtnNext_Click()
{
if(DataGrid.CurrentPageIndex >0 && DataGrid.CurrentPageIndex<DataGrid.PageCount)
{
DataGrid.CurrentPageIndex +=1;
DataBind();
}
}
怪,AllowCustomPaging属性应该用在什么地方