天天看点

可输入的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#)

继续阅读