DataList使用存储过程实现分页 .

<head runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width: 46px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
  <div> 
      <asp:DataList ID="DataList1" runat="server"
        onitemcommand="DataList1_ItemCommand"
        oncancelcommand="DataList1_CancelCommand"
        ondeletecommand="DataList1_DeleteCommand" oneditcommand="DataList1_EditCommand"
        onupdatecommand="DataList1_UpdateCommand" style="margin-right: 0px"
         >
        <EditItemTemplate>
            <table style="width:100%;">
                <tr>
                    <td class="style1">
                        姓名</td>
                    <td>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="style1">
                        性别</td>
                    <td>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="style1">
                        年龄</td>
                    <td>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="style1">
                        <asp:Button ID="Button4" runat="server" CommandArgument='<%# Eval("sid") %>'
                            CommandName="update" Text="更新" />
                    </td>
                    <td>
                        <asp:Button ID="Button5" runat="server" CommandArgument='<%# Eval("sid") %>'
                            CommandName="cancel" Text="取消" />
                    </td>
                </tr>
            </table>
        </EditItemTemplate>
        <ItemTemplate>
            姓名:<asp:Label ID="Label1" runat="server" Text='<%# Eval("sname") %>'></asp:Label>
            <br />
            性别:<asp:Label ID="Label2" runat="server" Text='<%# Eval("sex") %>'></asp:Label>
            <br />
            年龄:<asp:Label ID="Label3" runat="server" Text='<%# Eval("age") %>'></asp:Label>
            <br />
            <br />
            <asp:Button ID="Button2" runat="server" CommandName="edit"
                Text="编辑" CommandArgument='<%# Eval("sid") %>' />
            <asp:Button ID="Button3" runat="server" CommandName="delete" Text="删除"
                CommandArgument='<%# Eval("sid") %>' />
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("sid") %>'
                CommandName="Buy" Text="放入购物车" />
        </ItemTemplate>


    </asp:DataList>
   
   
      <br />
      <asp:Button ID="btnfirst" runat="server" Text="第一页" οnclick="btnfirst_Click" />
      <asp:Button ID="next" runat="server" Text="上一页" οnclick="next_Click" />
      <asp:Button ID="btnNEXT" runat="server" Text="下一页" οnclick="btnNEXT_Click" />
      <asp:Button ID="btnlast" runat="server" Text="莫一页" οnclick="btnlast_Click" />
      <br />
      <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>
   
   
      <br />
      <br />
      <asp:HiddenField ID="HiddenField1" runat="server" />
      <asp:HiddenField ID="HiddenField2" runat="server" />
   
   
    </div>
    </form>
</body>
</html>
/
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                BindProduct(2,1);
            }
        }

        private void BindProduct(int pageSize, int pageIndex)
        {
            string sp_name="sp_Student_Select_by_Page_rowNumber";
           // string sql = "select * from student";
           // @pageSize int,  --每页记录数量
           //@pageCount int output,  --总页数
           //@pageIndex int  --当前页索引号
            SqlParameter[] prms = new SqlParameter[] {
            new SqlParameter("@pageSize",pageSize),
            new SqlParameter("@pageCount",SqlDbType.Int),
            new SqlParameter("@pageIndex",pageIndex)
            };
            prms[1].Direction = ParameterDirection.Output;
            DataTable dt = SqlHelper.ExecuteDataTable(sp_name,CommandType.StoredProcedure,prms);
            this.DataList1.DataSource = dt;
            this.DataList1.DataBind();
            string sql = "select count(*) from student";
            int pagetotalNumber = (int)SqlHelper.ExecteScalar(sql);
            int pageCount;
            if (pagetotalNumber % pageSize!= 0)
            {
                pageCount = pagetotalNumber / pageSize + 1;
               
            }
            else
            {
                pageCount = pagetotalNumber / pageSize;
               
            }
            this.HiddenField2.Value = pageCount.ToString();
            this.HiddenField1.Value = pageIndex.ToString();
        }

        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if(e.CommandName=="Buy")
            {
                Response.Write(e.CommandArgument.ToString());
            }
        }

        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            this.DataList1.EditItemIndex = e.Item.ItemIndex;
            this.BindProduct(2,1);
        }

        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {

            string name = (e.Item.FindControl("TextBox1") as TextBox).Text;
            string sex = (e.Item.FindControl("TextBox2") as TextBox).Text;
            string age = (e.Item.FindControl("TextBox3") as TextBox).Text;

            string sql = "update student set sname=@name,sex=@sex,age=@age where sid=@sid";
            SqlParameter[] pms = new SqlParameter[]
            {
            new SqlParameter("@name",name),
            new SqlParameter("@sex",sex),
            new SqlParameter("@age",age),
            new SqlParameter("@sid",e.CommandArgument)
            };
            SqlHelper.ExecuteNonQuery(sql, pms);
        }

        protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
        {
            this.DataList1.EditItemIndex = -1;
            this.BindProduct(2,1);
        }

        protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            string sql = "delete from student where sid=@sid";
            SqlParameter pm = new SqlParameter("@sid",e.CommandArgument);
            SqlHelper.ExecuteNonQuery(sql,pm);
            this.BindProduct(3,1);
        }

     

        protected void btnfirst_Click(object sender, EventArgs e)
        {
            this.BindProduct(2,1);
        }

        protected void next_Click(object sender, EventArgs e)
        {
            int index = Convert.ToInt32(this.HiddenField1.Value);
            if(index>1)
            {
            index--;
            }
           
            this.BindProduct(2,index);
        }

        protected void btnNEXT_Click(object sender, EventArgs e)
        {
            int index = Convert.ToInt32(this.HiddenField1.Value);
            if (index<Convert.ToInt32(this.HiddenField2.Value))
            {
                index++;
            }

            this.BindProduct(2,index);
        }

        protected void btnlast_Click(object sender, EventArgs e)
        {

            this.BindProduct(2,Convert.ToInt32(this.HiddenField2.Value));
        }
/
  public static object ExecteScalar(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection conn = new SqlConnection(constr2))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {

                    if (pms != null)///说明还传了参数
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    conn.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }       
        public static DataTable ExecuteDataTable(string sql,CommandType commandtype, params SqlParameter[] pms)
        {
            DataTable dt = new DataTable();
            SqlDataAdapter adapter = new SqlDataAdapter(sql,constr2);
            adapter.SelectCommand.CommandType = commandtype;
            if (pms != null)
            {
                adapter.SelectCommand.Parameters.AddRange(pms);
            }
            adapter.Fill(dt);
          
            return dt;

        }

    }
}

转载于:https://www.cnblogs.com/qzc900809/archive/2012/12/19/2825716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 uniapp 的下拉刷新组件和列表组件来实现下拉分页加载数据的功能。下面是一个简单的示例代码: 首先,在页面的 template 中添加下拉刷新和列表组件: ```html <template> <view> <scroll-view scroll-y="true" @scrolltolower="loadMore"> <refresh refresher-triggered="refreshData"> <view class="list"> <view v-for="(item, index) in dataList" :key="index" class="item"> <!-- 显示数据项的内容 --> </view> </view> </refresh> </scroll-view> </view> </template> ``` 然后,在页面的 script 中定义相关的数据和方法: ```javascript <script> export default { data() { return { dataList: [], // 存储加载的数据列表 pageNum: 1, // 当前页码 pageSize: 10, // 每页显示的数据数量 isLoading: false, // 是否正在加载数据 }; }, methods: { // 下拉刷新数据 refreshData() { this.pageNum = 1; this.dataList = []; this.loadData(); }, // 加载更多数据 loadMore() { if (this.isLoading) return; this.pageNum++; this.loadData(); }, // 请求加载数据 loadData() { this.isLoading = true; // 发起请求,获取第 pageNum 页的数据 // 可以使用 uni.request 或 uni.$http 等方法发送网络请求 // 请求成功后将返回的数据添加到 dataList 中,如 this.dataList.push(...response.data) // 请求完成后,记得设置 this.isLoading = false; }, }, }; </script> ``` 在上面的代码中,`refreshData` 方法用于下拉刷新数据,会重置页码和数据列表,然后调用 `loadData` 方法加载第一页的数据。`loadMore` 方法用于触底加载更多数据,会增加页码并调用 `loadData` 方法加载下一页的数据。`loadData` 方法中可以使用 uni.request 或 uni.$http 等方法发送网络请求,成功后将返回的数据添加到 dataList 中,并在请求完成后设置 isLoading 为 false。 这样,当用户下拉刷新或触底时,就会触发相应的方法来加载新的数据,实现下拉分页加载数据的功能。你可以根据实际情况进行相应的修改和优化。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值