zoukankan      html  css  js  c++  java
  • DropDownList根据下拉项的Text排序

    有时候刚好表中没有可以排序的字段,又不想修改表结构,但它的项文本有序号,这时就可以用这方法排序,例如:

    测试页Default2.aspx:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:DropDownList runat="server" ID="ddlType">    
        </asp:DropDownList>
        <asp:Button runat="server" ID="btnSort" onclick="btnSort_Click" Text="排序" />
        </div>
        </form>
    </body>
    </html>
    

     Default2.aspx.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text.RegularExpressions;
    
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlType.Items.Add(new ListItem("--请选择--"));
                ddlType.Items.Add(new ListItem("2_bb"));
                ddlType.Items.Add(new ListItem("1_aa"));
                ddlType.Items.Add(new ListItem("4_ee"));
                ddlType.Items.Add(new ListItem("3_dd"));           
            }
        }
        protected void btnSort_Click(object sender, EventArgs e)
        {
            DropDownListBubbleSort(ddlType);
            //DropDownListSelectionSort(ddlType);
        }
        /// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="ddl"></param>
        public void DropDownListBubbleSort(DropDownList ddl)
        {
            ListItem listItem = new ListItem();
            for (int i = 0; i < ddl.Items.Count; i++)
            {
                for (int j = i + 1; j < ddl.Items.Count; j++)
                {
                    int firstVal = 0, nextVal = 0;
                    int.TryParse(Regex.Replace(ddl.Items[i].Text, @"\D", @"", RegexOptions.IgnoreCase), out firstVal);
                    int.TryParse(Regex.Replace(ddl.Items[j].Text, @"\D", @"", RegexOptions.IgnoreCase), out nextVal);
                    if (firstVal == 0 || nextVal == 0)
                        continue;
                    if (firstVal > nextVal)
                    {
                        listItem = ddl.Items[j];
                        ddl.Items.Remove(ddl.Items[j]);
                        ddl.Items.Insert(i, listItem);
                    }
                }
            }
        }
        /// <summary>
        /// 选择排序
        /// </summary>
        /// <param name="ddl"></param>
        public void DropDownListSelectionSort(DropDownList ddl)
        {
            ListItem listItem = new ListItem();
            int length = ddl.Items.Count;
            for (int i = 0; i < length; i++)
            {
                int min = 0;
                int.TryParse(Regex.Replace(ddl.Items[i].Text, @"\D", @"", RegexOptions.IgnoreCase), out min);
                if (min == 0)
                    continue;
    
                int minIndex = i;
                for (int j = i + 1; j < length; j++)
                {
                    int nextVal = 0;
                    int.TryParse(Regex.Replace(ddl.Items[j].Text, @"\D", @"", RegexOptions.IgnoreCase), out nextVal);
                    if (nextVal == 0)
                        continue;
                    if (min > nextVal)
                    {
                        min = nextVal;
                        minIndex = j;
                    }
                }
                if (minIndex != i)
                {
                    listItem = ddl.Items[minIndex];
                    ddl.Items.Remove(ddl.Items[minIndex]);
                    ddl.Items.Insert(i, listItem);
                }
            }     
        }
        
    }
    
  • 相关阅读:
    C#判断是否运行在调试模式下
    [php] Interface abstract里面的私有方法 private method of interface and abstract class
    [html] Javascript warning and error of w3c
    [html] <a> and <input> can not click in IE6 when use png fixed IE6下png图片和png背景透明导致该区域的链接和按钮无效
    [Ubuntu] invalid environment block
    [Ubuntu] 分割与合并文件 Cut and mix the file
    [php] Treat an object like an array
    [eZ publish] How to add a element to an array.
    [html] PHP使用Google map web services来计算两点间的距离 Compute the distance between two place via Google map services in PHP
    [html] symbol of <b> and <strong>
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2844603.html
Copyright © 2011-2022 走看看