Moses_john 2016-07-12 05:52 采纳率: 57.1%
浏览 633

asp.net如何开发第三方控件

开发一个可以在web端读取dxf文件的控件,可以通过拖拽放到web页上

  • 写回答

1条回答 默认 最新

  • people432 2016-07-12 06:08
    关注

    namespace WebControlLibrary
    {
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:HelloWorld runat=server></{0}:HelloWorld>")]
    public class HelloWorld : 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;
            }
        }
    
        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write(Text);
        }
    }
    

    }

    刚开始接触ASP.NET控件和组件开发,第1个疑问就是DefaultProperty 、ToolBoxData分别是什么含义?

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

    DefaultProperty是设置控件默认的属性的。

    ToolBoxData的意思是当你将这个控件从工具箱中拖放到WebForm中时在aspx文件的HTML代码中添加的对该控件的定义。

    这里面的{0}表示什么意思?

    控件的标记的前缀
    就是你拖这个控件到页面上时候
    他就自动添加<{0}:HelloWorld runat=server></{0}:HelloWorld>,这个{0}是你定义的。

    那究竟{0}如何定义呢?

    修改Visual Studio自动产生的代码,增加下面的一行

    [assembly: TagPrefix("WebControlLibrary", "aspNet")]
    namespace WebControlLibrary

    {

     //其他代码不变
    

    }

    重新生成控件项目。

    新建网站,把新生成的控件拖到新建的Web窗体上,切换到源视图状态,可以看到控件定义标记为:

    其中的aspNet正是我们用[assembly: TagPrefix("WebControlLibrary", "aspNet")]定义的。

    同时,在页面上部可以看到如下的标记:

    <%@ Register assembly="WebControlLibrary" namespace="WebControlLibrary" tagprefix="aspNet" %>

    再查一下msdn,TagPrefixAttribute的基本使用:

    public TagPrefixAttribute(
    string namespaceName,
    string tagPrefix
    )

    当然,自定义ASP.NET服务器控件TagPrefix,也可以修改网站的Web.config文件:






    这样,拖动控件到页面上时,控件的tagPrefix为AspNet:

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题