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新建项目时,还有很多项目类型没有去试,所以,此文以回忆那些年乱点的日子里。

  • 相关阅读:
    java映射
    java线程的一些方法和特性
    java线程通信
    java多线程同步
    java类对象概述
    JavaScript的对象——灵活与危险
    node.js项目中使用coffeescript的方式汇总
    12.2
    12.1
    11.30
  • 原文地址:https://www.cnblogs.com/xin_ny/p/2380439.html
Copyright © 2011-2022 走看看