asp.net 任意字段排序(用户控件版)、委托

效果如下:



ColumnSort.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ColumnSort.ascx.cs"
    Inherits="Unisoft.ICS.Web.UserControls.DropDown.ColumnSort" %>
<asp:DropDownList ID="ddlSortColumn" runat="server" AutoPostBack="true"
    onselectedindexchanged="ddlSortColumn_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlSortExt" runat="server" AutoPostBack="true"
    onselectedindexchanged="ddlSortExt_SelectedIndexChanged">
    <asp:ListItem Value="DESC" Text="倒序" Selected="True"></asp:ListItem>
    <asp:ListItem Value="ASC" Text="正序"></asp:ListItem>
</asp:DropDownList>
ColumnSort.ascx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;


namespace Unisoft.ICS.Web.UserControls.DropDown
{
    public partial class ColumnSort : System.Web.UI.UserControl
    {
        /// <summary>
        /// 声明SortColumnChange事件委托
        /// </summary>
        public delegate void SortColumnChangeDelegate();
        /// <summary>
        /// 定义SortColumnChange事件
        /// </summary>
        public event SortColumnChangeDelegate SortColumnChangeEvent;


        /// <summary>
        /// 声明SortExtChange事件委托
        /// </summary>
        public delegate void SortExtChangeDelegate();
        /// <summary>
        /// 定义SortExtChange事件
        /// </summary>
        public event SortExtChangeDelegate SortExtChangeEvent;


        /// <summary>
        /// 获取排序字符串
        /// 如:CustomerID DESC/ASC
        /// </summary>
        public string Sort
        {
            get
            { return this.ddlSortColumn.SelectedValue + " " + this.ddlSortExt.SelectedValue; }
        }


        /// <summary>
        /// 获取或设置排序列
        /// </summary>
        public string SortColum
        {
            get
            { return this.ddlSortColumn.SelectedValue; }
            set
            { this.ddlSortColumn.SelectedValue = value; }
        }


        /// <summary>
        /// 获取或设置DESC,ASC(DESC倒序,ASC正序)
        /// </summary>
        public string SortExt
        {
            get
            { return this.ddlSortExt.SelectedValue; }
            set
            { this.ddlSortExt.SelectedValue = value; }
        }


        protected void Page_Load(object sender, EventArgs e)
        {


        }


        /// <summary>
        /// 下拉框-填充值
        /// </summary>
        /// <param name="arr">如:CreateTime:创建日期|UpdateTime:修改日期|UserID:用户编号</param>
        public void BindSortColumn(string arr)
        {
            //清除空格,按|分割成数组
            string[] arrColumn = arr.Replace(" ", "").Split('|');


            foreach (var item in arrColumn)
            {
                string value = item.Substring(0, item.IndexOf(":"));//“:”前的内容
                string text = item.Substring(item.IndexOf(":") + 1);//“:”后的内容
                this.ddlSortColumn.Items.Add(new ListItem(text, value));//Add到下拉框
            }
        }

        //更改选项时,触发Customer.aspx.cs中的查询方法
        protected void ddlSortColumn_SelectedIndexChanged(object sender, EventArgs e)
        {
            SortColumnChangeEvent();
        }
        
        //更改选项时,触发Customer.aspx.cs中的查询方法
        protected void ddlSortExt_SelectedIndexChanged(object sender, EventArgs e) { SortExtChangeEvent(); } }}

绑定用户控件下拉框及事件

CustomerList.aspx

引用:
<%@ Register Src="../../UserControls/DropDown/ColumnSort.ascx" TagName="ColumnSort"
    TagPrefix="uc1" %>
HTML:
<uc1:ColumnSort ID="ucColumnSort" runat="server" />

CustomerList.aspx.cs

protected void Page_Load(object sender, EventArgs e)
        {
            //委托事件
            this.ucColumnSort.SortColumnChangeEvent += new Unisoft.ICS.Web.UserControls.DropDown.ColumnSort.SortColumnChangeDelegate(ucColumnSort_SortColumnChangeEvent);
            this.ucColumnSort.SortExtChangeEvent += new Unisoft.ICS.Web.UserControls.DropDown.ColumnSort.SortExtChangeDelegate(ucColumnSort_SortExtChangeEvent);


if (!Page.IsPostBack)
            {
               
                string arr = "CustomerID:客户编号|CustomerName:客户名称|CDTTypeName:证件类型|CDTCode:证件号码|CDTIssue:发证机关|LinkMan:联系人|Phone:电话|BelongUserName:客户所有人";
                this.ucColumnSort.BindSortColumn(arr);//绑定排序项
               
                this.BindCustomerList();//查询方法
            }

}


#region 排序控件,委托事件
        void ucColumnSort_SortColumnChangeEvent()
        {
            this.BindCustomerList();//触发查询事件
        }

        void ucColumnSort_SortExtChangeEvent()
        {
            this.BindCustomerList();//触发查询事件
        } 
        #endregion


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值