• 自定义控件(customControl)


    自定义控件:
    1.在BLL层(或其他层---n层结构)右键-〉add -〉Custom Control->groupbox.cs
    2.开始编写自定义控件,命名空间不是可选的,控件类必须属于某个命名空间。文件顶端的using 语句指定了----包含该控件所使用的类型的----命名空间。namespace语句将类的定义放入一个名为BLL的自定义命名空间。
    3.csc /t:library /out:groupbox.dll groupbox.cs 生成groupbox.dll文件
    4.把groupbox.dll文件拷贝至UI层的bin文件夹内。
    5.在groupboxPage.aspx页面首部写:

     <%@Register TagPrefix="win" Namespace="BLL" Assembly="groupbox.dll">

    关键是Namespace和Assembly要和groupbox.cs 中对应,groupbox.dll即是第三步生成的groupbox.dll
    6.在groupboxPage.aspx页面内就可以写:
     <win:groupbox  ID="MyGroupBox" Text="Colors" runat="server">
    .........................关键是RadioButtonList不要放到外面去,要放到groupbox的里面来
    </win:groupbox>
    groupbox.cs:

    using System;
    using System.Web;
    using System.Web.UI;

    namespace BLL
    {
        
    public partial class GroupBox : Control
        
    {
           
    /*
            public GroupBox()
            {
                InitializeComponent();
            } 
            
            protected override void OnPaint(PaintEventArgs pe)
            {
                // TODO: Add custom paint code here

                // Calling the base class OnPaint
                base.OnPaint(pe);
            }
           
          
    */

            
    string MyText = "";
            
    public string Text
            
    {
                
    get return MyText; }
                
    set { MyText = value; }
            }


            
    protected override void Render(HtmlTextWriter writer)
            
    {
                
    //输出一个<fieldset标记
                writer.WriteBeginTag("fieldset");//<fieldset id= 
                if ( ID != null)
                
    {
                    writer.WriteAttribute(
    "id", ClientID);
                    
    //represent the closing angle bracket(>) of a markup tag
                    writer.Write(HtmlTextWriter.TagRightChar);
                }

                
    //输出一个<legend>元素
                if (Text.Length > 0)
                
    {
                    writer.WriteFullBeginTag(
    "legend");//<legend>
                    writer.Write(Text);
                    writer.WriteEndTag(
    "legend");
                }

                
    //输出<fieldset></fieldset>标记之间的内容
                base.Render(writer);
                
    //输出一个</fieldset>标记
                writer.WriteEndTag("fieldset");
            }

        }

    }

    groupboxPage.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GroupBoxPage.aspx.cs" Inherits="GroupBoxPage" %>
    <%@Register  TagPrefix="win" Namespace="BLL" Assembly="GroupBox" %>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server">
        
    <title>Untitled Page</title>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <asp:CheckBox ID="Toggle" AutoPostBack="true" Text="Show Color" OnCheckedChanged="OnToggle" Checked="true" runat="server" />
        
    <br />
        
    <win:GroupBox ID="MyGroupBox" Text="Colors" runat="server">
        
        
    <asp:RadioButtonList ID="rbl1" runat="server">
        
    <asp:ListItem Text="red" Selected="true"></asp:ListItem>
        
    <asp:ListItem Text="Green" ></asp:ListItem>
        
    <asp:ListItem Text="Blue"></asp:ListItem>
        
    </asp:RadioButtonList>
        
    </win:GroupBox>    
        
    </form>
    </body>
    </html>



     

  • 相关阅读:
    mybatis的注意事项一
    java代码操作word模板生成PDF文件
    使用mybatis框架实现带条件查询多条件(传入实体类)
    MyBatis框架ResultMap节点
    优化mybatis框架中的查询用户记录数的案例
    Mybatis框架联表查询显示问题解决
    使用mybatis框架实现带条件查询单条件
    [DB] 如何彻底卸载删除MySQL 【MYSQL】
    [DB] MySQL窗口输入密码后消失问题 【MYSQL】
    [acm] 曾经 刷题记录 [只有正确的坚持才是胜利]
  • 原文地址:https://www.cnblogs.com/simhare/p/826128.html
Copyright © 2020-2023  润新知