天天看點

可輸入的DropDownList擴充控件(C#)

  首先,建立一個名字為ExtendWebControls的C#使用者自定義Web控件的工程

        然後,添加一個DropDownList.cs檔案,類型為Web自定義控件

        添加如下代碼到檔案中即可,需要注意的是在引用中要添加System.Design和System.Drawing

 1

可輸入的DropDownList擴充控件(C#)

using System;

 2

可輸入的DropDownList擴充控件(C#)

using System.Web.UI;

 3

可輸入的DropDownList擴充控件(C#)

using System.Web.UI.WebControls;

 4

可輸入的DropDownList擴充控件(C#)

using System.ComponentModel;

 5

可輸入的DropDownList擴充控件(C#)

using System.Web.UI.Design;

 6

可輸入的DropDownList擴充控件(C#)

using System.Collections;

 7

可輸入的DropDownList擴充控件(C#)

 8

可輸入的DropDownList擴充控件(C#)

namespace ExtendWebControls

 9

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

{

10

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

    /**//// <summary>

11

可輸入的DropDownList擴充控件(C#)

    /// DropDownList 的摘要說明。

12

可輸入的DropDownList擴充控件(C#)

    /// </summary>

13

可輸入的DropDownList擴充控件(C#)

    [ToolboxData("<{0}:DropDownListExtend runat=\"server\" />")] 

14

可輸入的DropDownList擴充控件(C#)

    public class DropDownListExtend : System.Web.UI.WebControls.TextBox

15

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

16

可輸入的DropDownList擴充控件(C#)

        private Hashtable _values;

17

可輸入的DropDownList擴充控件(C#)

        public DropDownList _DropDownList;

18

可輸入的DropDownList擴充控件(C#)

19

可輸入的DropDownList擴充控件(C#)

        public DropDownListExtend()

20

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

21

可輸入的DropDownList擴充控件(C#)

            _values = new Hashtable();

22

可輸入的DropDownList擴充控件(C#)

            _DropDownList = new DropDownList();

23

可輸入的DropDownList擴充控件(C#)

        }

24

可輸入的DropDownList擴充控件(C#)

25

可輸入的DropDownList擴充控件(C#)

        public Hashtable Values

26

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

27

可輸入的DropDownList擴充控件(C#)

            get

28

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

29

可輸入的DropDownList擴充控件(C#)

                return _values;

30

可輸入的DropDownList擴充控件(C#)

            }

31

可輸入的DropDownList擴充控件(C#)

            set

32

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

33

可輸入的DropDownList擴充控件(C#)

                _values = value;

34

可輸入的DropDownList擴充控件(C#)

35

可輸入的DropDownList擴充控件(C#)

36

可輸入的DropDownList擴充控件(C#)

37

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

        /**//// <summary> 

38

可輸入的DropDownList擴充控件(C#)

        /// 将此控件呈現給指定的輸出參數。

39

可輸入的DropDownList擴充控件(C#)

        /// </summary>

40

可輸入的DropDownList擴充控件(C#)

        /// <param name="output"> 要寫出到的 HTML 編寫器 </param>

41

可輸入的DropDownList擴充控件(C#)

        protected override void Render(HtmlTextWriter output)

42

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

43

可輸入的DropDownList擴充控件(C#)

            int iWidth = Convert.ToInt32(base.Width.Value);

44

可輸入的DropDownList擴充控件(C#)

            if(iWidth == 0)

45

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

46

可輸入的DropDownList擴充控件(C#)

                iWidth = 102;

47

可輸入的DropDownList擴充控件(C#)

                base.Width = Unit.Parse("102px");

48

可輸入的DropDownList擴充控件(C#)

49

可輸入的DropDownList擴充控件(C#)

50

可輸入的DropDownList擴充控件(C#)

            int sWidth = iWidth + 16;

51

可輸入的DropDownList擴充控件(C#)

            int spanWidth = sWidth - 18;

52

可輸入的DropDownList擴充控件(C#)

53

可輸入的DropDownList擴充控件(C#)

            output.Write("<div style=\"POSITION:relative\">");

54

可輸入的DropDownList擴充控件(C#)

            output.Write("<span style=\"MARGIN-LEFT:" + spanWidth.ToString() + "px;OVERFLOW:hidden;WIDTH:18px\">");

55

可輸入的DropDownList擴充控件(C#)

56

可輸入的DropDownList擴充控件(C#)

            _DropDownList.Width = Unit.Parse(sWidth.ToString() + "px");

57

可輸入的DropDownList擴充控件(C#)

            _DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth.ToString() + "px");

58

可輸入的DropDownList擴充控件(C#)

            _DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.value");

59

可輸入的DropDownList擴充控件(C#)

60

可輸入的DropDownList擴充控件(C#)

            if(_values.Count > 0)

61

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

62

可輸入的DropDownList擴充控件(C#)

                foreach(string key in _values.Keys)

63

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

64

可輸入的DropDownList擴充控件(C#)

                    ListItem item = new ListItem();

65

可輸入的DropDownList擴充控件(C#)

                    item.Value = key;

66

可輸入的DropDownList擴充控件(C#)

                    item.Text = _values[key].ToString();

67

可輸入的DropDownList擴充控件(C#)

                    _DropDownList.Items.Add(item);

68

可輸入的DropDownList擴充控件(C#)

                }

69

可輸入的DropDownList擴充控件(C#)

70

可輸入的DropDownList擴充控件(C#)

71

可輸入的DropDownList擴充控件(C#)

            if(_DropDownList.Items.Count == 1)

72

可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)
可輸入的DropDownList擴充控件(C#)

73

可輸入的DropDownList擴充控件(C#)

                ListItem item = new ListItem();

74

可輸入的DropDownList擴充控件(C#)

                item.Value = "";

75

可輸入的DropDownList擴充控件(C#)

                item.Text = " ";

76

可輸入的DropDownList擴充控件(C#)

                _DropDownList.Items.Add(item);

77

可輸入的DropDownList擴充控件(C#)

                _DropDownList.SelectedIndex = 1;

78

可輸入的DropDownList擴充控件(C#)

79

可輸入的DropDownList擴充控件(C#)

80

可輸入的DropDownList擴充控件(C#)

            _DropDownList.RenderControl(output);

81

可輸入的DropDownList擴充控件(C#)

82

可輸入的DropDownList擴充控件(C#)

            output.Write("</span>");

83

可輸入的DropDownList擴充控件(C#)

84

可輸入的DropDownList擴充控件(C#)

            base.Style.Clear();

85

可輸入的DropDownList擴充控件(C#)

            base.Width = Unit.Parse(iWidth.ToString() + "px");

86

可輸入的DropDownList擴充控件(C#)

            base.Style.Add("left", "0px");

87

可輸入的DropDownList擴充控件(C#)

            base.Style.Add("POSITION", "absolute");

88

可輸入的DropDownList擴充控件(C#)

89

可輸入的DropDownList擴充控件(C#)

            base.Render(output);

90

可輸入的DropDownList擴充控件(C#)

91

可輸入的DropDownList擴充控件(C#)

            output.Write("</div>");

92

可輸入的DropDownList擴充控件(C#)

93

可輸入的DropDownList擴充控件(C#)

    }

94

可輸入的DropDownList擴充控件(C#)

}

95

可輸入的DropDownList擴充控件(C#)

繼續閱讀