asp.net(c#) gridview显示数据库,条件查询之后,查询结果未正常分页,直接全部显示在一页?!求指点!!

问题描述

本人是初学者,用的是visualstudio2005,c#语言,数据库是.mdb格式,利用gridview显示的数据库,表名为user,下面是gridview的脚本:<asp:GridViewID="GridView1"runat="server"AllowPaging="True"AllowSorting="True"AutoGenerateColumns="False"CellPadding="3"Width="1500px"DataKeyNames="序号"DataSourceID="AccessDataSource1"ForeColor="#333333"GridLines="None"PageSize="25"><FooterStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/><Columns><asp:CommandFieldShowEditButton="True"/><asp:TemplateField><ItemTemplate><asp:ButtonID="Button1"runat="server"CausesValidation="False"CommandName="Delete"OnClientClick="returnconfirm('确定要删除该记录吗?');"Text="删除"/></ItemTemplate></asp:TemplateField><asp:BoundFieldDataField="序号"HeaderText="序号"InsertVisible="False"ReadOnly="True"SortExpression="序号"/><asp:BoundFieldDataField="账号"HeaderText="账号"SortExpression="账号"/><asp:BoundFieldDataField="密码"HeaderText="密码"SortExpression="密码"/><asp:BoundFieldDataField="姓名"HeaderText="姓名"SortExpression="姓名"/><asp:BoundFieldDataField="备注"HeaderText="备注"SortExpression="备注"/></Columns><RowStyleBackColor="#E3EAEB"/><EditRowStyleBackColor="#7C6F57"/><SelectedRowStyleBackColor="#C5BBAF"Font-Bold="True"ForeColor="#333333"/><PagerStyleBackColor="#666666"ForeColor="White"HorizontalAlign="Left"/><HeaderStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/><AlternatingRowStyleBackColor="White"/><PagerTemplate><tablewidth="100%"><tr><tdstyle="text-align:left;font-size:13px;width:260px;text-decoration:none;">第<asp:Labelid="lblPageIndex"runat="server"text='<%#((GridView)Container.Parent.Parent).PageIndex+1%>'/>页共<asp:Labelid="lblPageCount"runat="server"text='<%#((GridView)Container.Parent.Parent).PageCount%>'/>页<asp:linkbuttonid="btnFirst"runat="server"causesvalidation="False"commandargument="First"commandname="Page"text="首页"/><asp:linkbuttonid="btnPrev"runat="server"causesvalidation="False"commandargument="Prev"commandname="Page"text="上一页"/><asp:linkbuttonid="btnNext"runat="server"causesvalidation="True"commandargument="Next"commandname="Page"text="下一页"/><asp:linkbuttonid="btnLast"runat="server"causesvalidation="False"commandargument="Last"commandname="Page"text="尾页"/></td><tdstyle="text-align:left;font-size:14px;"></td></tr></table></PagerTemplate></asp:GridView>下面是我查询的脚本:<asp:LabelID="Label1"runat="server"Height="21px"Text="请选择查询条件"Width="121px"></asp:Label>&nbsp;&nbsp;<asp:DropDownListID="Ddl_Object"runat="server"Width="137px"OnSelectedIndexChanged="Ddl_Object_SelectedIndexChanged"><asp:ListItemValue="0">&lt;无&gt;</asp:ListItem><asp:ListItemValue="1">账号</asp:ListItem><asp:ListItemValue="2">姓名</asp:ListItem></asp:DropDownList><asp:TextBoxID="Tb_Content"runat="server"Width="171px"OnTextChanged="Tb_Content_TextChanged"></asp:TextBox><asp:ButtonID="Bt_Find"runat="server"OnClick="Bt_Find_Click"Text="查询"Width="61px"/>下面是我后台查询的代码:voidSearchResult(){AccessDataSource1.SelectParameters.Clear();switch(Convert.ToInt32(Ddl_Object.SelectedValue)){case1:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE(账号LIKE'%'+?+'%')ORDERBY[序号]";AccessDataSource1.SelectParameters.Add("账号",Tb_Content.Text);GridView1.AllowPaging=false;break;case2:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE([姓名]LIKE'%'+?+'%')ORDERBY[序号]";AccessDataSource1.SelectParameters.Add("姓名",Tb_Content.Text);GridView1.AllowPaging=false;break;default:AccessDataSource1.SelectCommand="SELECT*FROM[user]ORDERBY[序号]";//Response.Redirect("6master/main.aspx");break;}}不查询的时候可以正常翻页,查询之后查询结果不会自动分页,全部显示在一页里!怎么办??!

解决方案

解决方案二:
比如说我一页显示数量为25个,查询之后结果为40个,直接一页显示40!还有一种现象:如果查询结果只有一个,对其进行编辑,点击编辑按钮后,页面直接刷新到数据库的第一页了,求支招!!
解决方案三:
比如说我一页显示数量为25个,查询之后结果为40个,直接一页显示40!还有一种现象:如果查询结果只有一个,对其进行编辑,点击编辑按钮后,页面直接刷新到数据库的第一页了,求支招!!
解决方案四:
在查询时明明有一行代码写着“不分页”么?看不到了?
解决方案五:
在查询时明明有一行代码写着“不分页”么?看不到了?
解决方案六:
第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}
解决方案七:
相当感谢ajianchina,分页的问题解决了,但是编辑的问题还是存在,查询一个姓名,查询结果正常显示,但对其进行编辑,点击编辑按钮之后页面会刷新,就会返回到数据库的第一行,当再次点击查询按钮才会正确显示查询结果对应的编辑界面。。这个怎么解决?!
解决方案八:
引用?
解决方案九:
引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

分页的问题解决了,但是编辑的问题还是存在,查询一个姓名,查询结果正常显示,但对其进行编辑,点击编辑按钮之后页面会刷新,就会返回到数据库的第一行,当再次点击查询按钮才会正确显示查询结果对应的编辑界面。。这个怎么解决?!
解决方案十:
看你的点击事件是怎么写的了
解决方案十一:
编辑的问题添加编辑相关的几个事件,及编写相应代码.这些是基础的操作,网上一大堆的.
解决方案十二:
引用5楼ajianchina的回复:

第一个问题:GridView1.AllowPaging=false;把他给砍了第二个问题:给GridView1加上PageIndexChanging事件:protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}

大神,是能分页了,但是搜索之后点击下一页,不会显示搜索结果的第二页,而是整个数据库的第二页,好像GridView1的PageIndexChanging事件没触发,这是怎么回事/?
解决方案十三:
引用11楼u011042189的回复:

搜索之后点击下一页,不会显示搜索结果的第二页,而是整个数据库的第二页,好像GridView1的PageIndexChanging事件没触发,这是怎么回事

你在Page_Load判断一下搜索文本框是否存在搜索关键字,接着查询的时候加一个where条件查询就好了。或者,你可以参考一下百度搜索的样子,点击搜索之后,url里面有一个经过编码的搜索关键字,你也可以采用这种方法,譬如你在a.aspx页面点击搜索按钮,直接通过Response.Redirect("a.aspx?key=经过编码的搜索关键字"),然后在cs的Page_Load里接收这个Request.QueryString["key"],如果不为空,则按关键字查询。
解决方案十四:
引用12楼ajianchina的回复:

Quote: 引用11楼u011042189的回复:
搜索之后点击下一页,不会显示搜索结果的第二页,而是整个数据库的第二页,好像GridView1的PageIndexChanging事件没触发,这是怎么回事

你在Page_Load判断一下搜索文本框是否存在搜索关键字,接着查询的时候加一个where条件查询就好了。或者,你可以参考一下百度搜索的样子,点击搜索之后,url里面有一个经过编码的搜索关键字,你也可以采用这种方法,譬如你在a.aspx页面点击搜索按钮,直接通过Response.Redirect("a.aspx?key=经过编码的搜索关键字"),然后在cs的Page_Load里接收这个Request.QueryString["key"],如果不为空,则按关键字查询。[/q上一次修改数据库总数目的统计问题的时候已经删除了Page_Load,下面括号里是上次你帮我修改的(Page_Load里面的所有的代码统统删掉,用了AccessDataSource就没必要这样查询这样查询了你给AccessDataSource1添加一个Selected事件:AccessDataSource1.Selected+=AccessDataSource1_Selected;事件代码:protectedvoidAccessDataSource1_Selected(objectsender,SqlDataSourceStatusEventArgse){Label11.Text="共"+e.AffectedRows.ToString()+"户";}完成了,不懂的自己再摸索一下。)下面是cs页面所有的代码:publicpartialclass_Default:System.Web.UI.Page{protectedvoidlb_bak_Click(objectsender,EventArgse){Response.ContentType="application/x-zip-compressed";Response.AddHeader("Content-Disposition","attachment;filename=yunwei.mdb");stringfilename=Server.MapPath("~/App_Data/yunwei.mdb");Response.TransmitFile(filename);}protectedvoidBt_Find_Click(objectsender,EventArgse){SearchResult();}voidSearchResult(){AccessDataSource1.SelectParameters.Clear();switch(Convert.ToInt32(Ddl_Object.SelectedValue)){case1:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE(账号LIKE'%'+?+'%')";AccessDataSource1.SelectParameters.Add("账号",Tb_Content.Text);break;case2:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE([姓名]LIKE'%'+?+'%')";AccessDataSource1.SelectParameters.Add("姓名",Tb_Content.Text);break;case3:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE([小区]LIKE'%'+?+'%')";AccessDataSource1.SelectParameters.Add("小区",Tb_Content.Text);break;case4:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE([标识]LIKE'%'+?+'%')";AccessDataSource1.SelectParameters.Add("标识",Tb_Content.Text);break;case5:AccessDataSource1.SelectCommand="SELECT*FROM[user]WHERE([交换机编号]LIKE'%'+?+'%')";AccessDataSource1.SelectParameters.Add("交换机编号",Tb_Content.Text);break;default:AccessDataSource1.SelectCommand="SELECT*FROM[user]";//Response.Redirect("6master/main.aspx");break;}}protectedvoidAccessDataSource1_Selecting(objectsender,SqlDataSourceSelectingEventArgse){AccessDataSource1.Selected+=AccessDataSource1_Selected;}protectedvoidAccessDataSource1_Selected(objectsender,SqlDataSourceStatusEventArgse){Label11.Text="共"+e.AffectedRows.ToString()+"户";}protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridView1.PageIndex=e.NewPageIndex;GridView1.DataBind();}}怎么改,求大神指点啊??!!!

时间: 2024-09-15 12:34:53

asp.net(c#) gridview显示数据库,条件查询之后,查询结果未正常分页,直接全部显示在一页?!求指点!!的相关文章

ASP.NET使用Gridview绑定数据库中的图片

注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章. 我们都知道,在Gridview中不能直接去绑定数据库中的图片,我们可以利用HttpHandler很容易的完成这个任务,在这里我记录一下这个过程. 1.上传图片存储到数据库中 在数据库中创建一个表,添加一下3个字段: 步骤一:在Web页面中拖一个FileUpload 控件,一个文本框用于输入名称和提交上传按钮 <asp:FileUpload ID="fuImage" runat="server" /&g

asp.net用gridview显示数据库中两个表的数据?

问题描述 asp.net用gridview显示数据库中两个表的数据? asp.net用gridview显示数据库中两个表的数据?把两表绑定在datatable并用gridview显示数据 解决方案 两个表什么关系?如果是一样的表结构,用union连接,如果是主系表关系,那么可以用join.具体按照我说的google下. 解决方案二: 不管是查询几个表,最后通过sql语句走ado.net,查询出来的数据都放入DataTable或DataSet中,然后绑定到gridview 解决方案三: 如果是一起

sql-如何在ASP.NET下进行SQL数据库查询并显示?

问题描述 如何在ASP.NET下进行SQL数据库查询并显示? 有个BUTTON和一个TEXTBOX 想在TEXTBOX里输入姓名列查询整行数据并显示在网页上.请大神赐教 解决方案 我建议你,要么去网上搜代码,要密码买本书(是本讲asp.net的书,都会涉及到数据库开发) 解决方案二: 这个是很基础的一个问题 ,

VC++:选择组合框中的条件实现对access数据库文件的自动查询并显示到编辑框中

问题描述 VC++:选择组合框中的条件实现对access数据库文件的自动查询并显示到编辑框中 请教下大家:如标题 当鼠标选择组合框下拉列表中的条件时,自动根据下拉框条件查询ACCES数据库中的数据,并将查询的结果显示到编辑框中去,谢谢! 解决方案 http://blog.csdn.net/wenluderen/article/details/39029649 解决方案二: http://blog.csdn.net/yunqi415/article/details/6963720

VC++通过选择组合框条件自动查询数据库,并将查询结果显示到编辑框

问题描述 VC++通过选择组合框条件自动查询数据库,并将查询结果显示到编辑框 问题如标题,目前编写代码如下,但选择组合框条件后没反应 代码如下,诚盼大家指教,我是编程爱好者,为自己做需,谢谢!: CShiYinShaSet rs; UpdateData(); CString strSQL; //ShiYinSha:数据库中表名: //PiCi:表中列名: //Si_Pi:组合框ID变量,CString Si_Pi strSQL.Format("select * from ShiYinSha wh

asp.net使用Gridview控件显示数据库内容

实验主要步骤: 1:新建一个数据库名字为EmployDB,在其中添加一张表EmployInfo,字段有Name,Sex,Job,Salary, 并且向其中插入一些数据. 2: 新建一个ASP.NET程序,在主界面上拖放一个Gridview数据库控件. 3:添加命名空间:using System.Data.SqlClient; Default.aspx 使用Gridview控件显示数据库内容 老 蔡 Email:cxianfa@126.com 实验主要步骤: 1:新建一个数据库名字为EmployD

extjs 做数据库增删改查时,原先是全部查上来显示的,现在用条件查询,怎么在原先的位置上显示条件查询的结果

问题描述 extjs 做数据库增删改查时,原先是全部查上来显示的,现在用条件查询,怎么在原先的位置上显示条件查询的结果 问题补充:myali88 写道 解决方案 重写store的onbeforeload方法,构造查询参数,执行查询时这些参数可以直接在后台获取到.这种方式比较好理解.每次刷新(refreshGrid)都会执行这个方法.var grid;/** * grid的参数 */var params = {start : 0,limit : 1000};var rIndex;/** 操作行的i

Dreamweaver MX 2004做ASP程序(3)显示数据库的数据

dreamweaver|程序|数据|数据库|显示 1.打开Dreamweaver MX 2004,在站点里面先新建个ASP页面(index.asp),选择新建项目中的"ASP Javascript".打开应用程序面板,在"应用程序"面板中选中"数据库"标签.只要我们在前面建立了站点,选择了文档类型(即我们选的ASP Javascript的),并且还测试了服务器(http://localhost/myweb/).那现在就点击"+"

asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑

问题描述 asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑 asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑 解决方案 你是要某个字段显示在8行8列的表格中还是说读取数据出来之后是个8行8列的表格,然后显示进去? 可以直接用GRIDVIEW,或者直接用html拼接,至于修改,gridview有自带的commond方法 解决方案二: 数据库有64条记录,把64个记录中的score字段的值全部显示在表