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

  • 相关阅读:
    C语言中scanf()的用法
    Android学习笔记——Day3
    Android学习笔记——Day6
    Android学习笔记——Day5
    Android学习笔记——Day4
    Android学习笔记——Day2
    一个计时器按钮
    直方图均衡
    拉普拉斯算子进行图像边缘提取
    在jframe上显示超大号的文字
  • 原文地址:https://www.cnblogs.com/xin_ny/p/2380439.html
Copyright © 2011-2022 走看看