zoukankan      html  css  js  c++  java
  • 那些年,我了解了asp.net组件开发

    自定义控件与用户控件不同,不是一个.ascx的文件,而是一个类,这个类继承自webControl类,编写完成后,生成一个.dll文件,可以在VS中添加到工具栏中,这样我们就可以拖动它到页面中,就像asp.net服务器控件一样的使用,下面是一个Demo:

       1、添加一个项目,是一个asp.net服务器控件项目,它会自动生成一个类,并继承自webControl类,如图:

     得到如下类:

     namespace MyControl

    {

    [DefaultProperty("Text")]

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

    public class MyControl : WebControl

    {

    [Bindable(true)]

    [Category("Appearance")]

    [DefaultValue("")]

    [Localizable(true)]

    public string Text

    {

    get

    {

    String s = (String)ViewState["Text"];

    return ((s == null) ? "[" + this.ID + "]" : s);

    }



    set

    {

    ViewState["Text"] = value;

    }

    }



    public string Url

    {

    get

    {

    String s = (String)ViewState["Url"];

    return s ?? "";

    }

    set

    {

    ViewState["Url"] = value;

    }



    }

    protected override void RenderContents(HtmlTextWriter output)

    {

    String CustomControl = "<img src='" + Url + "' alt='" + Text + "' />";

    output.Write(CustomControl);

    }

    }

    }

     2、编写这个类,重要的是要重写RenderContents(HtmlTextWriter output),用于陈显在页面上的形态

     3、编译后生成.dll文件,那么就可以添加到项目中了,如下图:

     4、使用测试一下:

     <%@ Register Assembly="MyControl" Namespace="MyControl" TagPrefix="define" %>

    <define:MyControl runat="server" Text="MyPicture" Url="../images/3.gif"></define:MyControl>

     5、效果

    总结:

      那些年学习asp.net,使用VS2008新建项目时,还有很多项目类型没有去试,所以,此文以回忆那些年乱点的日子里。

  • 相关阅读:
    CentOS 7.X 关闭SELinux
    删除或重命名文件夹和文件的方法
    centos7-每天定时备份 mysql数据库
    centos7 tar.gz zip 解压命令
    MySQL5.6/5.7/8.0版本授权用户远程连接
    下载CentOS7系统
    使用js实现tab页签切换效果
    sql优化常用的几种方法
    mysql 多表联查的快速查询(索引)
    【图论】强连通分量+tarjan算法
  • 原文地址:https://www.cnblogs.com/xin_ny/p/2380439.html
Copyright © 2011-2022 走看看