论坛首页 入门技术论坛

GridView分页 不同数据源的切换 数据不能刷新

浏览 4658 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-17   最后修改:2009-03-17
我现在做一个GridView的分页程序,数据源分为三种:(1)页面初始时 一种数据源(2)另两个数据源为 在页面上 有两种查询方式来 查看信息:按姓名 按时间段 现在出现这种情况:在页面初始后 GridView 中载入的数据 点击 下一页 上一页 时页面中 的数据 是可以刷新的 在按姓名或者按时间段来 查看数据时 GridView 中也有数据 在页面中也能看得到 但是 当点击下一页 上一页时 GridView中的 数据就不刷新了。 我的上一页 下一页 这些按钮都是 采用超链接来实现的 我看其中的参数都正确 就是 点击的 时候 (在按姓名 和 按时间段) 查看的情况下 数据都不刷新。 那位老大 帮忙看看! 下面给出页面代码:
日志列表<%=linktemplate %>
当前用户:      数据记录:<% =total%>条      
筛选信息 姓名 日期
从   到     
<%# Eval("al_id").ToString()%> <%#Eval("al_ad_name").ToString()%> <%#Eval("al_ip").ToString()%> <%#Eval("al_create_date").ToString() %> <%#Eval("al_operate").ToString() %>
全选   
<%=firstlink %>> <%=perlink %>> <% = alinks %> <%=nextlink %>> <%=lastlink %>> 当前第<%=pageindex %>/<%=pages %>页 共<% =total %>条数据,<%=pagesize %>条每页,共<%=pages %>页
<% = CopyRights %>  
对应的页面类: namespace RGS.Web.Admin { public partial class AdminLogList : AdminPageBase { public static Int32 logCount; public String al_ad_name = RGSRequest.GetQueryString("al_ad_name"); public String begin_date = RGSRequest.GetQueryString("begin_date"); public String end_date = RGSRequest.GetQueryString("end_date"); public Int32 checktime = RGSRequest.GetQueryInt("checktime", 1); public DateTime begin_Date,end_Date; //选择面板的控制 public static Int32 selectdis ; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadLogList(); } lblMessge.Text = ""; } /// /// 数据的载入 /// private void LoadLogList() { try { begin_Date = Convert.ToDateTime(begin_date); end_Date = Convert.ToDateTime(end_date); } catch (Exception ex) { ErrorProcess.CreateErrorMsg(ex.ToString()); begin_Date = DateTime.Now.AddDays(-1); end_Date = DateTime.Now.AddDays(-1); } //在存储过程中,checktime为1时按无条件查询,2为按姓名 3 为按时间 //对应的存储过程我已经测试过了,没有问题。 bind(al_ad_name,checktime,begin_Date,end_Date); } /// /// 处理全部删除选择的数据 /// /// /// protected void btnDelete_Click(object sender, EventArgs e) { string al_ad_list = RGSRequest.GetFormSafeString("cboxSelect"); if (al_ad_list.Length == 0) { lblMessge.Text = "请选择要删除的行!!!"; } else { logCount += AdminLog.AdminLog_DeleteLogListByLogID(al_ad_list); if (logCount >= 0) { lblMessge.Text = "你已经删除" + logCount + "条日志记录"; } } LoadLogList(); } /// /// 处理按时间段查询日志 /// /// /// /// protected void btnDaySelect_Click(object sender, EventArgs e) { selectdis = 1; begin_date = RGSRequest.GetFormString("tboxBeginDay").Trim(); end_date = RGSRequest.GetFormString("tboxEndDay").Trim(); total = 0; pageindex = 1; checktime = 3; LoadLogList(); } /// /// 按用户名进行查询 /// /// /// protected void btnUserNameSelect_Click(object sender, EventArgs e) { al_ad_name = RGSRequest.GetFormSafeString("tboxUserName"); selectdis = 0; total = 0; pageindex = 1; checktime = 2; LoadLogList(); } /// /// 处理数据绑定 /// protected void bind(string al_ad_name, Int32 checktime, DateTime begin_date, DateTime end_date) { if (total == 0) { docount = true; } DataSet ds = AdminLog.AdminLog_GetAdminLogList(al_ad_name,checktime,begin_date,end_date, pagesize, pageindex, docount, "al_create_date DESC"); if (ds != null) { this.GridView1.DataSource = ds.Tables[0]; this.GridView1.DataBind(); if (docount)//如果统计选项为true,取出统计 { total = DataSetProcess.GetTotalFromDataSetTable(ds, 1); } } ProcPaging(); } //分页相关变量 public Int32 total = RGSRequest.GetQueryInt("t", 0);//总记录数 public Int32 pagesize = 30;//页大小 public Int32 pageindex = RGSRequest.GetQueryInt("p", 1);//当前页 public Int32 pages = 0;//总页数 private Boolean docount = false; public String firstlink = "";//首页 public String perlink = "";//上一页 public String nextlink = "";//下一页 public String lastlink = "";//最后一页 public String alinks = "";//中间显示链接 /// /// 处理分页显示 /// public String linktemplate; private void ProcPaging() { linktemplate = "href=?p={0}&t={1}&checktime=" + checktime + "&al_ad_name=" + al_ad_name + "&begin_date=" + begin_date + "&end_date=" + end_date; if (total == 0) { firstlink = ""; perlink = ""; nextlink = ""; lastlink = ""; alinks = ""; } else { pages = Convert.ToInt32(total / pagesize);//计算总页数 if (pages == 0)//如果取整数为0时设为1 pages = 1; if (total > pages * pagesize) pages += 1; if (pageindex > 1) { firstlink = string.Format(linktemplate, 1, total); perlink = string.Format(linktemplate, pageindex - 1, total); } if (pageindex < pages) { lastlink = string.Format(linktemplate, pages, total); nextlink = string.Format(linktemplate, pageindex + 1, total); } if (pages > 1) { int minpage = (pageindex - 4) <= 1 ? 1 : pageindex - 4; int maxpage = (pageindex + 4) >= pages ? pages : pageindex + 4; StringBuilder sb = new StringBuilder(); if (minpage > 1) sb.Append("..."); for (int i = minpage; i < pageindex; i++) { sb.Append(" " + i.ToString() + " "); } sb.Append("" + pageindex + ""); for (int i = pageindex + 1; i <= maxpage; i++) { sb.Append("<a " + string.Format(linktemplate, i, total) + "> " + i.ToString() + " </a>"); } if (maxpage < pages) sb.Append("..."); alinks = sb.ToString(); } } } } } 存储过程: ALTER PROCEDURE AdminLog_GetAdminLogList --读取管理日志 2009-03-17 ( @al_ad_name VARCHAR(30),--管理员用户ID @checktime INT, --是否使用时间条件进行查询,1 不适用条件,2用户名,3时间段 @begin_date DATETIME, --操作时间下限 @checktime=0时任意输入一个时间 @end_date DATETIME , --操作时间上限 @checktime=0时任意输入一个时间 @pagesize INT, -- 页尺寸 @pageindex INT, -- 页码 @docount BIT, -- 返回记录总数, 1 值则返回,以查询结果表1的Total字段输出,表0为分页结果 @strorder VARCHAR(255) -- 排序字段,可由多个字段组合,如 al_ip,al_create_date desc(注意:不要加 ORDER BY) ) AS DECLARE @strWHERE varchar(5000) SET @strWHERE='' IF @checktime=2 BEGIN SET @strWHERE =' AND al_ad_name ='''+@al_ad_name +''' ' END IF @checktime = 3 BEGIN SET @strWHERE = ' AND al_create_date >='''+ CONVERT(varchar(19), @begin_date, 120) +''' AND al_create_date <='''+ CONVERT(varchar(19), @end_date, 120) +''' ' END SET @strWHERE = ' 1=1' + @strWHERE --调用分页存储过程 EXEC PagingData 'Admin_Log','*','al_id',@pagesize,@pageindex,@docount,@strWHERE,@strorder 急需解决这个 按条件查询 的 翻页时的 gridview 的数据刷新问题,请帮帮忙
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics