网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Asp.net实现向上向下排序的例子
内容
    工作中一些常用到的代码记录下来,方便自己查找也方便其他需要人士参考。
    废话不多说,这是一个向上向下排序的功能,首先使用存储过程 整好 如下:
    SQL:
    -- =============================================
    -- Author:
    -- Create date:
    -- Description:
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_BannerOrder]
    -- Add the parameters for the stored procedure here
    (
    @tablename nvarchar(50), --表名
    @colname nvarchar(50), --排序字段
    @keyid nvarchar(50), --表主键字段
    @keyidvalue int, --表主键字段值1
    @order nvarchar(20), -- 列表默认的排序方式,asc或desc
    @orderDirection nvarchar(20), --排序方向,up或down
    @where nvarchar(2000) --查询条件
    )
    AS
    BEGIN
    declare @ordertmp1 int; --临时排序值id1
    declare @ordertmp2 int; --临时排序值id2
    declare @tmpkeyidvaule nvarchar(50);
    declare @sql nvarchar(2000);
    DECLARE @ParmDefinition nvarchar(500);
    DECLARE @ParmDefinition2 nvarchar(500);
    if @order='asc'
    begin
    SET @sql = N'SELECT @ordertmp1OUT='+@colname+' from where as nvarchar(50));
    SET @ParmDefinition = nvarchar(20) OUTPUT';
    EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp1OUT=@ordertmp1 OUTPUT;
    if @orderDirection='up'
    begin
    SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from where as nvarchar(50))+' and order by desc';
    end
    else
    begin
    SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' fromwhere as nvarchar(50))+' and order byasc';
    end
    SET @ParmDefinition = nvarchar(20) OUTPUT, @tmpkeyidvauleOUT nvarchar(20) OUTPUT';
    EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp2OUT=@ordertmp2 OUTPUT, @tmpkeyidvauleOUT=@tmpkeyidvaule OUTPUT;
    end
    else
    begin
    SET @sql = N'SELECT @ordertmp1OUT='+@colname+' from where as nvarchar(50));
    SET @ParmDefinition =nvarchar(20) OUTPUT';
    EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp1OUT=@ordertmp1 OUTPUT;
    if @orderDirection='up'
    begin
    SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from where as nvarchar(50))+' andorder byasc';
    end
    else
    begin
    SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from where as nvarchar(50))+' and order by desc';
    end
    SET @ParmDefinition = nvarchar(20) OUTPUT, @tmpkeyidvauleOUT nvarchar(20) OUTPUT';
    EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp2OUT=@ordertmp2 OUTPUT, @tmpkeyidvauleOUT=@tmpkeyidvaule OUTPUT;
    end
    set @sql = 'update set as nvarchar(50))+' where as nvarchar(50));
    set @sql = @sql + ' update + ' set as nvarchar(50))+' where as nvarchar(50));
    --select @ordertmp1,@ordertmp2,@tmpkeyidvaule,@sql
    exec(@sql);
    END
    MODEL:
    public class Banner
    {
    public Banner()
    { }
    private int _id;
    private string _smallPic;
    private string _bigPic;
    private int _orderid;
    private string _url;
    private string _title;
    private string _descript;
    //字增量ID
    public int ID
    {
    get { return this._id; }
    set { this._id = value; }
    }
    //BANNER小图
    public string SmallPic
    {
    get { return this._smallPic; }
    set { this._smallPic = value; }
    }
    ///
    /// BANNER大图
    ///
    public string BigPic
    {
    get { return this._bigPic; }
    set { this._bigPic = value; }
    }
    ///
    /// 排序ID
    ///
    public int OrderId
    {
    get { return this._orderid; }
    set { this._orderid = value; }
    }
    ///
    /// URL地址
    ///
    public string Url
    {
    get { return this._url; }
    set { this._url = value; }
    }
    ///
    /// 标题
    ///
    public string Title
    {
    get { return this._title; }
    set { this._title = value; }
    }
    ///
    /// 描述
    ///
    public string Descript
    {
    get { return this._descript; }
    set { this._descript = value; }
    }
    }
    IDAL代码:
    /// 排序
    ///
    /// 表名
    /// 排序字段
    /// 表主键字段
    /// 表主键字段值
    /// 列表默认的排序方式,asc或desc
    /// 排序方向,up或down
    /// 条件
    ///
    int Order(string table,string colname,string keyid,int keyidvalue,string order,string orderDirection,string whe);
    SQLDAL代码:
    public int Order(string table,string colname,string keyid,int keyidvalue,string order,string orderDirection,string whe)
    {
    SqlParameter[] paras = {
    new SqlParameter("@tablename", table),
    new SqlParameter("@colname",colname),
    new SqlParameter("@keyid",keyid),
    new SqlParameter("@keyidvalue",keyidvalue),
    new SqlParameter("@order",order),
    new SqlParameter("@orderDirection",orderDirection),
    new SqlParameter("@where",whe)
    };
    return Convert.ToInt32( SqlHelper.ExecuteNonQuery(Configuration.ConnectionString, CommandType.StoredProcedure, "sp_BannerOrder", paras));
    BLL代码:
    public int Order(string table, string colname, string keyid, int keyidvalue, string order, string orderDirection, string whe)
    {
    return bner.Order(table, colname, keyid, keyidvalue, order, orderDirection, whe);
    }
    WEB:
    aspx代码:
    <%@ Page Language="C#" MasterPageFile="~/Admin/Masterpage/Page.Master" AutoEventWireup="true" CodeBehind="Banner.aspx.cs" Inherits="YXShop.Web.Admin.Article.Banner" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    <%@ Register assembly="FredCK.FCKeditorV2" namespace="FredCK.FCKeditorV2" tagprefix="FCKeditorV2" %>
    前台Banner管理
    标 题:最多可填写15个字
    描 述:最多可填写20个字
    上传小图:
    ErrorMessage="请选择图片!">
    上传大图:
    ErrorMessage="请选择图片!">
    排 序:
    ControlToValidate="txborder" ErrorMessage="不能为空!">
    链接地址:
    ControlToValidate="txbUrl" ErrorMessage="不能为空!">
    ControlToValidate="txbUrl" ErrorMessage="填写的地址不符合规格"
    ValidationExpression="http(s)?://([w-]+.)+[w-]+(/[w- ./?%&=]*)?">
    onclick="btnOK_Click" />
    onrowdatabound="gvwBannner_RowDataBound" BackColor="White" DataKeyNames="ID"
    BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3"
    GridLines="Horizontal" onrowcancelingedit="gvwBannner_RowCancelingEdit"
    onrowdeleting="gvwBannner_RowDeleting" onrowediting="gvwBannner_RowEditing"
    onrowupdating="gvwBannner_RowUpdating" AllowSorting="True" Width="551px">
    <%--
    DataAlternateTextFormatString="这是{0}的图" DataImageUrlField="smallPic"
    HeaderText="图片">
    --%>
    Text="向上" onclick="Button1_Click" />
    Text="向下" OnClick="Button2_Click" />
    CommandName="Delete" Text="删除" OnClientClick="return confirm('是否刪除?');" >
    CS代码:
    protected void Button1_Click(object sender, EventArgs e)
    {
    int keyidvlue = Convert.ToInt32(gvwBannner.DataKeys[((GridViewRow)((Button)sender).NamingContainer).RowIndex].Value); //获取主键值
    int row = Convert.ToInt32(((GridViewRow)((Button)sender).NamingContainer).RowIndex);//获取行号
    if (row == 0)
    {
    YXShop.Common.alert.show("已经最前了!");
    }
    else
    {
    bll.Order("banner", "orderid", "id", keyidvlue, "desc", "up", "1=1");
    this.Bind();
    }
    }
    //向下
    protected void Button2_Click(object sender, EventArgs e)
    {
    //int keyidvlue = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
    int keyidvlue = Convert.ToInt32(gvwBannner.DataKeys[((GridViewRow)((Button)sender).NamingContainer).RowIndex].Value);
    int row1 = Convert.ToInt32(((GridViewRow)((Button)sender).NamingContainer).RowIndex);
    if (row1 == this.gvwBannner.Rows.Count-1)
    {
    YXShop.Common.alert.show("已经最后了!");
    }
    else
    {
    bll.Order("banner", "orderid", "id", keyidvlue, "desc", "down", "1=1");
    this.Bind();
    }
    }
    至此完毕。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 23:05:03