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

  • 相关阅读:
    ORA-12543: TNS:destination host unreachable
    Visual Studio 2008 连接云端 visualstudio.com
    将博客搬至CSDN
    Shiro 系列笔记(一)
    Centos 6.7 安装jdk
    Centos service启动失败原因--权限问题
    form表单提交的ajax形式
    slf4j与mybatis结合显示sql
    Docker 部署 redis教程,附带部分小建议,防止踩坑
    Android中的EditText默认时不弹出软键盘的方法
  • 原文地址:https://www.cnblogs.com/xin_ny/p/2380439.html
Copyright © 2011-2022 走看看