<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        asp.net DropDownList自定義控件,讓你的分類更清晰

        來源:懂視網 責編:小采 時間:2020-11-27 22:42:49
        文檔

        asp.net DropDownList自定義控件,讓你的分類更清晰

        asp.net DropDownList自定義控件,讓你的分類更清晰:看到Discuz是2個下拉列表進行合并的,網上找了一些資料,然后寫了這個小源碼,在這里和大家分享一下! 運行效果圖,如下所示(深黑的地方選不中,因為那是上一級的分類): 項目結構圖如下所示: Controls類庫SmartDropDownList.cs代碼如下所示:
        推薦度:
        導讀asp.net DropDownList自定義控件,讓你的分類更清晰:看到Discuz是2個下拉列表進行合并的,網上找了一些資料,然后寫了這個小源碼,在這里和大家分享一下! 運行效果圖,如下所示(深黑的地方選不中,因為那是上一級的分類): 項目結構圖如下所示: Controls類庫SmartDropDownList.cs代碼如下所示:

        看到Discuz是2個下拉列表進行合并的,網上找了一些資料,然后寫了這個小源碼,在這里和大家分享一下!
        運行效果圖,如下所示(深黑的地方選不中,因為那是上一級的分類):

        項目結構圖如下所示:

        Controls類庫SmartDropDownList.cs代碼如下所示:

        SmartDropDownList.cs
        代碼如下:

        using System;
        2 using System.Collections.Generic;
        3 using System.Linq;
        4 using System.Text;
        5 using System.Web.UI.WebControls;
        6 using System.Web.UI;
        7 using System.ComponentModel;
        8 using System.Web;
        9
        namespace mydream.Controls
        {
        [ToolboxData("<{0}:SmartDropDownList runat=server></{0}:SmartDropDownList>")]
        public class SmartDropDownList : DropDownList
        {
        /// <summary>
        /// 構造函數
        /// </summary>
        public SmartDropDownList() { }
        /// <summary>
        /// 將控件的內容呈現到指定的編寫器中
        /// </summary>
        /// <param name="writer"></param>
        protected override void RenderContents(HtmlTextWriter writer)
        {
        OptionGroupRenderContents(writer);
        }
        /// <summary>
        /// 呈現Option或OptionGroup
        /// </summary>
        /// <param name="writer">writer</param>
        private void OptionGroupRenderContents(HtmlTextWriter writer)
        {
        // 是否需要呈現OptionGroup的EndTag
        bool writerEndTag = false;
        foreach (ListItem li in this.Items)
        {
        // 如果沒有optgroup屬性則呈現Option
        if (li.Value != this.OptionGroupValue)
        {
        // 呈現Option
        RenderListItem(li, writer);
        }
        // 如果有optgroup屬性則呈現OptionGroup
        else
        {
        if (writerEndTag)
        // 呈現OptionGroup的EndTag
        OptionGroupEndTag(writer);
        else
        writerEndTag = true;
        // 呈現OptionGroup的BeginTag
        OptionGroupBeginTag(li, writer);
        }
        }
        if (writerEndTag)
        // 呈現OptionGroup的EndTag
        OptionGroupEndTag(writer);
        }
        /// <summary>
        /// 呈現OptionGroup的BeginTag
        /// </summary>
        /// <param name="li">OptionGroup數據項</param>
        /// <param name="writer">writer</param>
        private void OptionGroupBeginTag(ListItem li, HtmlTextWriter writer)
        {
        writer.WriteBeginTag("optgroup");
        // 寫入OptionGroup的label
        writer.WriteAttribute("label", li.Text);
        foreach (string key in li.Attributes.Keys)
        {
        // 寫入OptionGroup的其它屬性
        writer.WriteAttribute(key, li.Attributes[key]);
        }
        writer.Write(HtmlTextWriter.TagRightChar);
        writer.WriteLine();
        }
        /// <summary>
        /// 呈現OptionGroup的EndTag
        /// </summary>
        /// <param name="writer">writer</param>
        private void OptionGroupEndTag(HtmlTextWriter writer)
        {
        writer.WriteEndTag("optgroup");
        writer.WriteLine();
        }
        /// <summary>
        /// 呈現Option
        /// </summary>
        /// <param name="li">Option數據項</param>
        /// <param name="writer">writer</param>
        private void RenderListItem(ListItem li, HtmlTextWriter writer)
        {
        writer.WriteBeginTag("option");
        // 寫入Option的Value
        writer.WriteAttribute("value", li.Value, true);
        if (li.Selected)
        {
        // 如果該Option被選中則寫入selected
        writer.WriteAttribute("selected", "selected", false);
        }
        foreach (string key in li.Attributes.Keys)
        {
        // 寫入Option的其它屬性
        writer.WriteAttribute(key, li.Attributes[key]);
        }
        writer.Write(HtmlTextWriter.TagRightChar);
        // 寫入Option的Text
        HttpUtility.HtmlEncode(li.Text, writer);
        writer.WriteEndTag("option");
        writer.WriteLine();
        }
        /// <summary>
        /// 用于添加SmartDropDownList的分組項的ListItem的Value值
        /// </summary>
        [
        Browsable(true),
        Description("用于添加DropDownList的分組項的ListItem的Value值"),
        Category("擴展")
        ]
        public virtual string OptionGroupValue
        {
        get
        {
        string s = (string)ViewState["OptionGroupValue"];
        return (s == null) ? "optgroup" : s;
        }
        set
        {
        ViewState["OptionGroupValue"] = value;
        }
        }
        }
        }

        smartDropDownList.aspx頁面代碼如下所示:
        smartDropDownList.aspx
        代碼如下:

        <%@ Page Language="C#" AutoEventWireup="true" CodeFile="smartDropDownList.aspx.cs" Inherits="smartDropDownList" %>
        <%@ Register Assembly="Controls" Namespace="mydream.Controls" TagPrefix="cc1" %>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head runat="server">
        <title></title>
        </head>
        <body>
        <form id="form1" runat="server">
        <div>
        <cc1:SmartDropDownList ID="SmartDropDownList1" runat="server">
        </cc1:SmartDropDownList>
        </div>
        </form>
        </body>
        </html>

        smartDropDownList.aspx頁面smartDropDownList.cs如下所示:
        smartDropDownList.cs
        代碼如下:

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Web;
        using System.Web.UI;
        using System.Web.UI.WebControls;
        using System.Data;
        public partial class smartDropDownList : System.Web.UI.Page
        {
        protected void Page_Load(object sender, EventArgs e)
        {
        if (!IsPostBack)
        {
        this.Bindddlist(this.SmartDropDownList1);
        }
        }
        /// <summary>
        /// 板塊ListItem
        /// </summary>
        /// <returns></returns>
        private List<ListItem> GetBoardList()
        {
        List<ListItem> list = new List<ListItem>();
        for (int i = 1; i < 6; i++)
        {
        ListItem li = new ListItem("這里是板塊"+i,i.ToString());
        list.Add(li);
        }
        return list;
        }
        /// <summary>
        /// 子板塊ListItem
        /// </summary>
        /// <returns></returns>
        private List<ListItem> GetSubBoardList()
        {
        List<ListItem> list=this.GetBoardList();
        List<ListItem> list_sub = new List<ListItem>();
        foreach (ListItem li in list)
        {
        ListItem li_sub = new ListItem("這一項是上一級的子板塊", "這里是你像傳遞參數的值");
        list_sub.Add(li_sub);
        }
        return list_sub;
        }
        /// <summary>
        /// 綁定下拉控件數據
        /// </summary>
        private void Bindddlist(mydream.Controls.SmartDropDownList smartddlist)
        {
        smartddlist.Items.Clear();
        List<ListItem> list = this.GetBoardList();
        foreach (ListItem li in list)
        {
        ListItem item = new ListItem("--" + li.Text, "optgroup");
        smartddlist.Items.Add(item);
        List<ListItem> list_sub = this.GetSubBoardList();
        foreach (ListItem li_sub in list_sub)
        {
        smartddlist.Items.Add(li_sub);
        }
        }
        smartddlist.DataBind();
        }
        }

        你可以根據你數據庫的設計來綁定值,這里沒用數據庫,只是說明思路!
        源碼下載,點擊這里!
        版權所有,轉載請注明出處!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net DropDownList自定義控件,讓你的分類更清晰

        asp.net DropDownList自定義控件,讓你的分類更清晰:看到Discuz是2個下拉列表進行合并的,網上找了一些資料,然后寫了這個小源碼,在這里和大家分享一下! 運行效果圖,如下所示(深黑的地方選不中,因為那是上一級的分類): 項目結構圖如下所示: Controls類庫SmartDropDownList.cs代碼如下所示:
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲欧洲春色校园另类小说| 亚洲日韩小电影在线观看| 亚洲精品中文字幕乱码影院| www亚洲一级视频com| 亚洲AV成人片色在线观看高潮| 亚洲精品黄色视频在线观看免费资源 | 一进一出60分钟免费视频| 免费无码又爽又刺激高潮| 亚洲性无码一区二区三区| 国语成本人片免费av无码| 亚洲色欲色欲www| av网站免费线看| 亚洲av无码国产精品色午夜字幕| 成在人线av无码免费高潮水| 亚洲国产精品无码久久久秋霞2| 四虎国产精品免费永久在线| 亚洲国产精品自在在线观看| 久久国内免费视频| 亚洲欧美国产日韩av野草社区| 国产美女精品视频免费观看| 九九免费观看全部免费视频| 久久国产亚洲精品麻豆| 国产在线jyzzjyzz免费麻豆| 亚洲国产成人精品无码区花野真一| 免费观看日本污污ww网站一区| 四虎影视久久久免费| 久久久影院亚洲精品| 2021久久精品免费观看| 精品亚洲国产成人av| 毛茸茸bbw亚洲人| 67194成手机免费观看| 日本亚洲国产一区二区三区| 无码人妻一区二区三区免费看| 亚洲国产成人精品电影| 亚洲高清视频免费| 亚洲av午夜电影在线观看| 亚洲中文字幕无码一区二区三区| 最近免费中文在线视频| 男男gvh肉在线观看免费| 亚洲AV无码国产精品麻豆天美| 成全影视免费观看大全二|