问题描述
本人是初学者,用的是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> <asp:DropDownListID="Ddl_Object"runat="server"Width="137px"OnSelectedIndexChanged="Ddl_Object_SelectedIndexChanged"><asp:ListItemValue="0"><无></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