none
请教各位朋友,如何实现无刷新分页 RRS feed

  • 问题

  • 页面层代码:

    C# code<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ProgramInput.aspx.cs" Inherits="CheckTask_ProgramInput" Title="Untitled Page" %>

    <%@ Register Src="../Controls/CheckProgram.ascx" TagName="CheckProgram" TagPrefix="uc1" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js"></script>

        <script  type="text/javascript" language="javascript">
    function GetAllCheckBox(parentItem)
      {
         var items = document.getElementsByTagName("input";     
         for(i=0; i<items.length;i++)
         {      
           if(parentItem.checked)
           {
             if(items.type=="checkbox"
              {
               items.checked = true;
              }
           }
           else
           {
              if(items.type=="checkbox"
              {
               items.checked = false;
              }
           }
         }
      }

        </script>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>

        <uc1:CheckProgram ID="CheckProgram1" runat="server" />
       
            </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>



    所调用的用户控件代码:

    C# code<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CheckProgram.ascx.cs" Inherits="Controls_CheckProgram" %>
               <div align="center" style="width:99%">
            <span style="font-size: 12pt;"><strong>登 录 日 志</strong></span>
            <br />
            <hr style="background-color: Gray; width: 90%" />
            <br />
        </div>
        <br />
        <div align="center" style="width:99%" id="DIV1" runat="server">
        <asp:CheckBox ID="chkCheckAll" runat="server" Text="全选" onclick="GetAllCheckBox(this)" />
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                        
        <asp:Button ID="btnDelete" runat="server" Text="删除选定项" OnClick="btnDelete_Click" />
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="90%" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:TemplateField HeaderText="选定(√)">
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField HeaderText="程序号" DataField="ProgramCode" />
                    <asp:BoundField HeaderText="客户" DataField="Name" />
                    <asp:BoundField HeaderText="工厂地址" DataField="Address" />
                    <asp:BoundField HeaderText="工厂人数" DataField="WorkerNumbers" />
                    <asp:BoundField HeaderText="产品" DataField="ProductCode" />
                    <asp:BoundField HeaderText="认证机构" DataField="AOName" />
                    <asp:BoundField HeaderText="出发日期" DataField="PStartTime" />
                    <asp:BoundField HeaderText="报告要求完成日期" DataField="PDoneTime" />
                    <asp:BoundField HeaderText="应用专业号" DataField="SpecialtyId" />
                    <asp:BoundField HeaderText="有关资料" DataField="RelateData" />
                    <asp:BoundField HeaderText="依据" DataField="According" />
                    <asp:BoundField HeaderText="目的" DataField="Purpose" />
                    <asp:BoundField HeaderText="收费单号" DataField="PChargeId" />
                    <asp:BoundField HeaderText="备注" DataField="Remark" />
                    <asp:BoundField HeaderText="立卡人" DataField="Creater" />
                    <asp:BoundField HeaderText="立卡时间" DataField="CreatTime" />
                    <asp:TemplateField Visible="False">
                        <ItemTemplate>
                            <asp:Label ID="lblProgramCode" runat="server" Text='<%# Eval("ProgramCode" %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="修改">
                        <ItemTemplate>
                                        <asp:ImageButton ID="ImageButton1" runat="server" CommandArgument='<%# Eval("ProgramCode" %>' CommandName="modify" ImageUrl="~/Images/edit.gif" />
                                    </ItemTemplate>
                     </asp:TemplateField>
                     <asp:TemplateField HeaderText="用户详情">
                                    <ItemTemplate>
                                        <asp:LinkButton ID="LinkButton1" runat="server" ForeColor="Blue" CommandName="link" CommandArgument='<%# Eval("ProgramCode" %>'>详情</asp:LinkButton>
                                    </ItemTemplate>
                     </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <asp:Literal ID="ltStatus" runat="server" Text="第0页/共0页,共0条记录"></asp:Literal>
    <asp:HyperLink ID="hlFirstPage" runat="server">首页</asp:HyperLink>
    <asp:HyperLink ID="hlPreviousPage" runat="server">上一页</asp:HyperLink>
    <asp:HyperLink ID="hlNextPage" runat="server">下一页</asp:HyperLink>
    <asp:HyperLink ID="hlLastPage" runat="server">末页</asp:HyperLink>
    <aspropDownList ID="ddlGo" runat="server" >
    </aspropDownList>
        </div>
        <br />
        <div id="DIV2" runat="server" align="center">
            <asp:Label ID="lblMes" runat="server" ForeColor="Red"></asp:Label>
        </div>



    用户控件里面是一个GridView和几个分页的HyperLink按钮,

    整体思路就是把控件封装在〈asp:UpdatePanel 里面,希望实现无刷新,


    现在问题是只在点分页按钮的时候整个页面会刷新,点其它按钮不会整页面刷新
    2009年6月8日 9:36

答案

  •   Hi,
       1.只需要显示的数据放在updatepanel里;
       2.使用存储过程分页,你在页面点击下一页之需要传递页数和每页显示的个数。存储过程查询数据。
       3.你要做的就是在buttonclick 对应的后代处理方法里 把返回的数据重新绑定到gridview上。
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    • 已标记为答案 伊藤诚 2009年6月8日 12:26
    2009年6月8日 12:21
    版主

全部回复

  •   Hi,
       1.只需要显示的数据放在updatepanel里;
       2.使用存储过程分页,你在页面点击下一页之需要传递页数和每页显示的个数。存储过程查询数据。
       3.你要做的就是在buttonclick 对应的后代处理方法里 把返回的数据重新绑定到gridview上。
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    • 已标记为答案 伊藤诚 2009年6月8日 12:26
    2009年6月8日 12:21
    版主
  • 你好,把GridView扔到UpdatePanel里面去就可以了啊!注意要设置Triggers条件。

    谢谢!
    邹俊才
    2009年6月8日 12:36
    版主