当前位置: 代码迷 >> ASP.NET >> gridview 分页 有关问题
  详细解决方案

gridview 分页 有关问题

热度:1264   发布时间:2013-02-25 00:00:00.0
gridview 分页 问题
用结合ajax control toolket的控件 做了个搜索页面,,根据不同的类别,因为每个目标数据库表的结构不一样所以,用了3个gridview控件,分别来显示这3个类别的搜索结果,结果gridview控件分页出现问题

前台代码
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="SearchResult.aspx.cs" Inherits="SearchResult" Title="搜索结果页" Theme="typical"%>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
  <asp:ScriptManagerProxy id="ScriptManagerProxy1" runat="server">
  </asp:ScriptManagerProxy>
  <div class="bodydiv01" id="searchdivbox">
  <div class="searchheader">
  关键字: <asp:TextBox ID="txtKeyword" runat="server"></asp:TextBox>
  &nbsp; &nbsp;&nbsp;
  类别:
  <asp:DropDownList ID="DropDownList1" runat="server">
  <asp:ListItem Selected="True" Value="articles">文章</asp:ListItem>
  <asp:ListItem Value="downloads">下载资源</asp:ListItem>
  <asp:ListItem Value="links">链接</asp:ListItem>
  </asp:DropDownList>
  &nbsp;&nbsp; 每页条数:<asp:TextBox ID="txtNum" runat="server"></asp:TextBox>
  &nbsp; &nbsp;
  <asp:Button ID="Button1" runat="server" Text="立刻搜索" OnClick="Button1_Click" /> [/color[color=#0000FF]]//此处点击后可以显示数据,分页器也能显示,只是点击 页码 1以后的页码,页面gridview就为空了
  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtKeyword"
  Display="None" ErrorMessage="请输入搜索关键字"></asp:RequiredFieldValidator>
  <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtNum"
  Display="None" ErrorMessage="请输入一个1到25的整数"></asp:RequiredFieldValidator>
  <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtNum"
  ErrorMessage="RangeValidator" MaximumValue="25" MinimumValue="1" Type="Integer"></asp:RangeValidator>
   
   
  </div>

  <asp:UpdatePanel id="UpdatePanel1" runat="server" UpdateMode="Conditional">
  <contenttemplate>
<asp:GridView id="ArtilceView" runat="server" GridLines="None" Visible="False" ShowHeader="False" AllowPaging="True" AutoGenerateColumns="False" Width="100%" __designer:wfdid="w8" OnPageIndexChanging="ArtilceView_PageIndexChanging"><Columns>
<asp:TemplateField><ItemTemplate>
  <ul class="searchresult">
  <li class="resultheader"><a href='<%# "Articles/"+Eval("ArticleID").ToString()+".shtml" %>'><%# Eval("title").ToString() %></a></li>
  <li class="resultcontent"><span class="zhaiyao">摘要:</span><%# Eval("Abstract").ToString() %></li>
  <li class="resultfooter">时间:<%# Eval("Atime").ToString() %>来源:<%#Eval("Asource").ToString() %></li>
  </ul>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> <asp:GridView id="DownloadList" runat="server" GridLines="None" Visible="False" ShowHeader="False" AllowPaging="True" AutoGenerateColumns="False" Width="100%" __designer:wfdid="w9" OnPageIndexChanging="DownloadList_PageIndexChanging"><Columns>
<asp:TemplateField><ItemTemplate>
  <ul class="searchresult">
  <li class="resultheader"><a href='<%# "UpandDown/"+Eval("FilePath").ToString() %>'><%# Eval("FileName").ToString() %></a></li>
  <li class="resultfooter">时间:<%# Eval("Dtime").ToString() %></li>
  </ul>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> <asp:GridView id="Links" runat="server" GridLines="None" Visible="False" ShowHeader="False" AllowPaging="True" AutoGenerateColumns="False" Width="100%" __designer:wfdid="w10" OnPageIndexChanging="Links_PageIndexChanging"><Columns>
<asp:TemplateField><ItemTemplate>
  <ul class="searchresult">
  <li class="resultheader"><a href='<%# Eval("Url") %>'><%# Eval("lName").ToString() %></a></li>
  <li class="resultcontent">
  英文名称:<%#Eval("EngName").ToString() %><br />
  联系电话:<%#Eval("ConPhone").ToString() %>
  </li>
  <li class="resultfooter">详细地址:<%# Eval("lAddress").ToString() %></li>
  </ul>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> 
</contenttemplate>
  <triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click"></asp:AsyncPostBackTrigger>
<asp:AsyncPostBackTrigger ControlID="ArtilceView" EventName="PageIndexChanging"></asp:AsyncPostBackTrigger>
<asp:AsyncPostBackTrigger ControlID="Links" EventName="PageIndexChanging"></asp:AsyncPostBackTrigger>
<asp:AsyncPostBackTrigger ControlID="DownloadList" EventName="PageIndexChanging"></asp:AsyncPostBackTrigger>
</triggers>
 </asp:UpdatePanel>
   
  <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="RequiredFieldValidator1"> </cc1:ValidatorCalloutExtender>
  <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" TargetControlID="RangeValidator1"> </cc1:ValidatorCalloutExtender>
  <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" TargetControlID="RequiredFieldValidator2"></cc1:ValidatorCalloutExtender>
  </div>
</asp:Content>




------解决方案--------------------------------------------------------
AspNetPager1.PageSize = pageSize;
AspNetPager1.RecordCount = RecordCount;
AspNetPager1.CurrentPageIndex = pageIndex;
AspNetPager1.DataBind();

是不是少了:AspNetPager1.RecordCount = RecordCount;?
------解决方案--------------------------------------------------------

用的这 AspNetPager 这个控件,好多了。又方便又好用。

地址:www.webdiyer.com
------解决方案--------------------------------------------------------
这样试试
C# code
protected void ArtilceView_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         ArtilceView.PageIndex = e.NewPageIndex;         ArtilceView.Visible = true;         ShowData("articles");     } protected void DownloadList_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         DownloadList.PageIndex = e.NewPageIndex;         ShowData("downloads");     }     protected void Links_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         Links.PageIndex = e.NewPageIndex;         ShowData("links");    }
------解决方案--------------------------------------------------------
这样试试
C# code
protected void ArtilceView_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         ArtilceView.PageIndex = e.NewPageIndex;         ArtilceView.Visible = true;         ShowData("articles");     } protected void DownloadList_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         DownloadList.PageIndex = e.NewPageIndex;         ShowData("downloads");     }     protected void Links_PageIndexChanging(object sender, GridViewPageEventArgs e)     {         Links.PageIndex = e.NewPageIndex;         ShowData("links");    }