GridView查询分页问题。。分页后点击下一页无效。。

langya001 2017-03-09 03:53:03
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}

//主函数
public void Bind()
{
try
{
string keyword = Request.Form["keyword"].Trim();
string sql = "select * from news Where titles like '%"+keyword+"%' order by id Desc";
IList<Vaisi_newslistModel> list = new List<Vaisi_newslistModel>();
DataTable table = SqlHelper.GetScalarListTable(sql);
foreach (DataRow row in table.Rows)
{
Vaisi_newslistModel news = new Vaisi_newslistModel();
news.Id = Convert.ToInt32(row["id"]);
news.Titles = Convert.ToString(row["titles"]);
news.Img_url = Convert.ToString(row["img_url"]);
news.Dtime = DateTime.Parse(row["dtime"].ToString());
news.Contents = Convert.ToString(row["contents"]);
list.Add(news);
}
this.GridView1.DataSource = list;
this.GridView1.DataBind();
}
catch (Exception)
{


}
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
GridView gvw = (GridView)sender;

if (e.NewPageIndex < 0)
{
System.Web.UI.WebControls.TextBox pageNum = (System.Web.UI.WebControls.TextBox)gvw.BottomPagerRow.FindControl("tbPage");
int pa = int.Parse(pageNum.Text);
if (pa <= 0)
gvw.PageIndex = 0;
else
gvw.PageIndex = pa - 1;
}
else
{
gvw.PageIndex = e.NewPageIndex;
}
Bind();
}
catch (Exception)
{

}
}


前台

<form id="Form1" runat="server">
<ul>
<asp:GridView ID="GridView1" runat="server" Width="95%" BorderWidth="0px" DataKeyNames="id" OnPageIndexChanging="GridView1_PageIndexChanging" AutoGenerateColumns="False" AllowPaging="true" PageSize="1">
<Columns>
<asp:TemplateField HeaderText="新闻标题">
<ItemTemplate>
<a href="../Show.aspx?Newsid=<%# Eval("id") %>"><%# Eval("Titles") %></a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布时间" HeaderStyle-CssClass="th_time" ItemStyle-CssClass="td_time">
<ItemTemplate><%# Eval("dtime")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作" HeaderStyle-CssClass="th_category">
<ItemTemplate>
<a href="../Show.aspx?Newsid=<%# Eval("id") %>">浏览</a> <a href="News_Modify.aspx?Newsid=<%# Eval("id") %>">修改</a>
<asp:LinkButton ID="LName" runat="server" PostBackUrl='<%# Eval("id", "News_Del.aspx?id={0}") %>' Text='删除'></asp:LinkButton>
</ItemTemplate>
<HeaderStyle CssClass="th_category"></HeaderStyle>
</asp:TemplateField>
</Columns>

<PagerTemplate>
<center style="color: Gray;margin-top:30px;">
<asp:LinkButton ID="lbFirst" runat="server" CausesValidation="False" CommandArgument="First"
ForeColor="Gray" CommandName="Page" CssClass="pagecss"><font color="white">首页</font></asp:LinkButton>
<asp:LinkButton ID="lbPrev" runat="server" CausesValidation="False" CommandArgument="Prev"
ForeColor="Gray" CommandName="Page" CssClass="pagecss"><font color="white">上一页</font></asp:LinkButton>
<asp:LinkButton ID="lbNext" runat="server" CausesValidation="False" CommandArgument="Next"
ForeColor="Gray" CommandName="Page" CssClass="pagecss"><font color="white">下一页</font></asp:LinkButton>
<asp:LinkButton ID="lbLast" runat="server" CausesValidation="False" CommandArgument="Last"
ForeColor="Gray" CommandName="Page" CssClass="pagecss"><font color="white">尾页</font></asp:LinkButton>
第<asp:Label ID="Label2" runat="server" CssClass="pagecss" Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:Label>页
共<asp:Label ID="Label1" runat="server" CssClass="pagecss" Text="<%# ((GridView)Container.Parent.Parent).PageCount %>"></asp:Label>页
</center>
</PagerTemplate>
</asp:GridView>
</ul>
</form>




现在的问题是。第一次查询能显示出来数据,但点击下一页,上一页。这样的分类操作没有反应。请教一下
...全文
429 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laservsmayun 2018-03-09
  • 打赏
  • 举报
回复
就你能,谢谢!
langya001 2017-03-10
  • 打赏
  • 举报
回复
问题解决,我把传递过来的值放到Session里。一切正常。谢谢楼上两位的帮忙
langya001 2017-03-09
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
http://www.cnblogs.com/luqingsong/archive/2012/05/12/2497137.html 你的模板跟这个url里的差距好大,而且都没tbPage这个输入框
看了你发的代码。他是单纯的分页。我是查询后分页出的问题。
langya001 2017-03-09
  • 打赏
  • 举报
回复
引用 1 楼 qq_35468565 的回复:
只要在gridview实现分页吗? 我做的项目代码里面这样就行了: GridView1.PageIndex = e.NewPageIndex; GridView1.DataSource = operation.GetOutStock(); GridView1.DataBind();
问题是查询后分不了。你是在翻页里重新绑定了数据源。能贴下GetOutStock吗?
  • 打赏
  • 举报
回复
http://www.cnblogs.com/luqingsong/archive/2012/05/12/2497137.html 你的模板跟这个url里的差距好大,而且都没tbPage这个输入框
qq_35468565 2017-03-09
  • 打赏
  • 举报
回复
只要在gridview实现分页吗? 我做的项目代码里面这样就行了: GridView1.PageIndex = e.NewPageIndex; GridView1.DataSource = operation.GetOutStock(); GridView1.DataBind();

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧