Datalist;GridView用存储过程实现分页

9 篇文章 0 订阅
3 篇文章 0 订阅

Html代码

    <div>
        <asp:DataList ID="DataList1" runat="server">
            <ItemTemplate>
                <table style="width:100%;">
                    <tr>
                        <td>
                            id</td>
                        <td>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("id") %>'></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            name</td>
                        <td>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("name") %>'></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            sex</td>
                        <td>
                            <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:DataList>
        <asp:HiddenField ID="HiddenField1" runat="server" />
        <asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="|<" />
        <asp:Button ID="Button2" runat="server" οnclick="Button2_Click" Text="<" />
        <asp:Button ID="Button3" runat="server" οnclick="Button3_Click" Text=">" />
        <asp:Button ID="Button4" runat="server" Text=">|" />
    </div>

C#代码

public partial class WebForm1 : System.Web.UI.Page
    {
       // int i = 1; 
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                HiddenField1.Value = "1";
                int i = Convert.ToInt32(HiddenField1.Value);
                select(i);
                
            }
        }

        private void select(int i)
        {
            string sqlstring = "usp_fenye";
            SqlParameter[] sp = new SqlParameter[]{
                    new SqlParameter("@pagesize",3),
                    new SqlParameter("@pageindex",i),
                    new SqlParameter("@pagecount",SqlDbType.Bit)
                };
            sp[2].Direction = ParameterDirection.Output;
    
            DataList1.DataSource = sqlhelp.select(sqlstring, sp);
            DataList1.DataBind();
        }
        //向后条一页
        protected void Button2_Click(object sender, EventArgs e)
        {
            int i = Convert.ToInt32(HiddenField1.Value);
            if (i > 1)
            {
                i = i - 1;
                select(i);
                HiddenField1.Value = i.ToString();
            }
        }
        //向前跳一页
        protected void Button3_Click(object sender, EventArgs e)
        {
            int i = Convert.ToInt32(HiddenField1.Value);
            i=i+1;
            select(i);
            HiddenField1.Value = i.ToString();
        }
        //跳转第一页
        protected void Button1_Click(object sender, EventArgs e)
       {
           int i = Convert.ToInt32(HiddenField1.Value);
           i = 1;
           select(i);
           HiddenField1.Value = i.ToString();
        }
        //跳转最后一页
        protected void Button4_Click(object sender, EventArgs e)
        {
            
            //select(i);
        }
    }

sqlhelp类中的代码

 public class sqlhelp
    {
       
       static string sqlstring = "data source=hp-pc;initial catalog=student1;user=sa;password=admin";
        public static DataTable select(string commandText,params SqlParameter[] para)
        {
            using (SqlConnection con = new SqlConnection(sqlstring))
            {
                using (SqlCommand cmd = new SqlCommand(commandText,con))
                {
                    con.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    if (para != null)
                    {
                        for(int i=0;i<para.Length;i++)
                        {
                            cmd.Parameters.Add(para[i]); 
                             
                        }
                        
                    }
                  
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                   
                    return dt;  
                }
            }
        }
    }

sql代码

create proc usp_fenye
@pagecount int output,--一共有多少页
@pagesize int ,--每页有几行
@pageindex int --当前第几页
as
begin
    declare @count int;--总数
    select @count=COUNT(*) from T_sanguo;
    if(@count%@pagesize=0)
       set @pagecount=@count/@pagesize;
    else
       set @pagecount=@count/@pagesize+1;
       with temp as(select ROW_NUMBER() over(order by id asc) as iid,id,name,sex from T_sanguo)
     select * from temp where iid between (@pageindex-1)*@pagesize+1 and @pageindex*@pagesize;
     return @count
  end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值