zoukankan      html  css  js  c++  java
  • 牛腩购物4 aspnetpager控件的使用 以及 linkbutton 如何传值,判断传入的id值是否为数字

    1:在数据库 建立分页的存储过程

    2:在 动软生成器生成的DAO代码中加上获取分页数据的方法,和计算记录数的方法

    3:在页面中 假如 asp控件并设置显示的样式

    4:在后台的page_load 事件中先设置 anp 控件的总记录数,再绑定 rep控件

    5:双击anp控件,进行anp控件的分页事件。

    存储过程如下(只适合sql2005以及以上)

    -- =============================================
    -- Author:		牛腩
    -- Create date: 2009-07-22 12:41
    -- Description:	分页,用到了ROW_NUMBER()
    -- =============================================
    create PROCEDURE [dbo].[proc_FenYe]
    @tblName   varchar(255),       -- 表名
    @strGetFields varchar(1000) = '*', -- 需要返回的列,默认*
    @strOrder varchar(255)='',      -- 排序的字段名,必填
    @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC
    @PageSize   int = 10,          -- 页尺寸,默认
    @PageIndex int = 1,           -- 页码,默认
    @strWhere varchar(1500) = '' -- 查询条件(注意: 不要加where)
    AS
    
    declare @strSQL   varchar(5000)
    
    if @strWhere !=''
    set @strWhere=' where '+@strWhere
    
    set @strSQL=
    'SELECT * FROM ('+
    	'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+''+@strOrderType+') AS pos,'+@strGetFields+''+
    	'FROM '+@tblName+''+@strWhere+
    ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize)
    
    exec (@strSQL)

    接下来,我们去DAL层查看 LinkDAO.cs 修改 获取分页记录的代码,添加获取 总记录数的方法
    image 

     
    
    

    /// <summary>分页获取数据列表
            ///
            /// </summary>
            /// <param name="strGetFields">选择的字段</param>
            /// <param name="strOrder">排序字段</param>
            /// <param name="strOrderType">排序类型 desc或者asc</param>
            /// /// <param name="PageSize">页面大小</param>
            /// <param name="PageIndex">页索引</param>
            /// <param name="strWhere">条件</param>
            /// <returns></returns>
            public DataSet GetList(string strGetFields, string strOrder, string strOrderType, int PageSize, int PageIndex, string strWhere)
            {
                Database db = DatabaseFactory.CreateDatabase();
                DbCommand dbCommand = db.GetStoredProcCommand("proc_FenY");
                db.AddInParameter(dbCommand, "tblName", DbType.AnsiString, "shop_link");
                db.AddInParameter(dbCommand, "strGetFields", DbType.AnsiString, strGetFields);
                db.AddInParameter(dbCommand, "PageSize", DbType.Int32, PageSize);
                db.AddInParameter(dbCommand, "PageIndex", DbType.Int32, PageIndex);
                db.AddInParameter(dbCommand, "strOrder ", DbType.String, strOrder);
                db.AddInParameter(dbCommand, "strOrderType", DbType.String, strOrderType);
                db.AddInParameter(dbCommand, "strWhere", DbType.AnsiString, strWhere);
                return db.ExecuteDataSet(dbCommand);
            }

    image

    /*********************************************************
     * 开发人员:Joey  QQ:1727050508   博客: http://1727050508.cnblogs.com
     * 创建时间:2012-3-2 16:17:39
     * 描述说明:link_list.aspx 用来显示 友情链接列表
     * 
     * 更改历史:
     * 
     * *******************************************************/
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Niunan.Shop.Model;
    using Niunan.Shop.DAL;
    
    namespace Niunan.Shop.Web.admin
    {
        public partial class link_list : System.Web.UI.Page
        {
            LinkDAO link = new LinkDAO();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
    
                    BindRep();
                }
    
            }
    
            private void BindRep()
            {
                int pagesize = anp.PageSize;
                int pageindex = anp.CurrentPageIndex;
                anp.RecordCount = link.ClacCount(GetCond());
                repList.DataSource = link.GetList("*", "id", "desc", pagesize, pageindex, GetCond());
                
                repList.DataBind();
            }
    
            private string GetCond()
            {
                string cond = "";
                string key = txtKey.Text.Trim();
                if (key.Length!=0)
                {
                    cond = "linkname like  '%"+key+"%' or url like '%"+key+"%' ";
                }
                return cond;
            }
    
            protected void lbtnDel_Click(object sender, EventArgs e)
            {
                string id = (sender as LinkButton).CommandArgument; //这里的sender是上面挂号里面的 object对象,转换为 linkbutton对象
                link.Delete(int.Parse(id));
                BindRep();
    
            }
    
            protected void anp_PageChanged(object sender, EventArgs e)
            {
                BindRep();
            }
    
            protected void btnSearch_Click(object sender, EventArgs e)
            {
                BindRep();
            }
        }
    }
    

    我们在用 linkbutton 做删除的时候

    前台代码

    <asp:LinkButton ID="lbtnDel"    runat="server" OnClientClick="return confirm('是否删除该链接?')" 
    OnClick="lbtnDel_Click" CommandArgument='<%#Eval("id") %>'>删除</asp:LinkButton>
    

    后台代码

    protected void lbtnDel_Click(object sender, EventArgs e)
            {
                string id = (sender as LinkButton).CommandArgument; //这里的sender是上面挂号里面的 object对象,转换为 linkbutton对象
                link.Delete(int.Parse(id));
                BindRep();
    
            }
    

    如何判断传入的ID的值是否为数字
     
    string id = Request.QueryString["id"];
                    int x;
    
                    //如果字符串不等于null 不等于空            并且是数字
    
                    if (!string.IsNullOrEmpty(id) && int.TryParse(id, out x))
                    {
                        Niunan.Shop.Model.Link linkModel = new Niunan.Shop.DAL.LinkDAO().GetModel(int.Parse(id));
    
                        if (linkModel != null)
                        {
                            txtLinkName.Text = linkModel.linkname;
                            txtLinkUrl.Text = linkModel.url;
                            litH1.Text = "修改友情链接";
                            btnAdd.Text = "修改";
                        }
    
                    }
                }
    
  • 相关阅读:
    执行序列oracle存储过程和序列化写的demo
    快捷键列表myeclipse 设置代码提示快捷键
    鼠标管理解决win8 插上usb/鼠标蓝屏或无效方法
    JQuery实现拼图数字游戏
    Django的admin定制
    Django报:AttributeError: tuple object has no attribute get
    Django的models方法返回值异常,待解决
    主页跳转子页面的时候,模板语句中的数据未返回到页面(子页面空白)
    Django报:builtin_function_or_method' object is not iterable
    Windows Azure SDK 1.5、Windows Azure Tools for Microsoft Visual Studio 2010和新的服务管理功能发布了
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2379982.html
Copyright © 2011-2022 走看看