Asp.net控件开发----控件开发基础

Asp.net控件开发----控件开发基础,第1张

服务器控件开发基础

当开发一个服务器控件时 首先要明白其内部的工作机理 其实在页面内部每一点由返回的HTML代码无论是简单的<span>标签 或者是button按钮 或者是复杂的gridview控件 都是由继承自System Web UI Control的对象生成的

控件的属性

控制控件的方法大多是通过控件的属性来 *** 作的 通过控制服务器控件的属性 就可以相应的改变服务器生成的

下面是一个服务器控件的属性:   

   在Visual Studio里 当通过属性窗口来改变控件的属性时 VS会自动将属性添加到对应的aspx的HTML里 而在内添加属性时 在属性窗口里也会对应显示更改过的属性视图比如

<asp:Button ID= Button runat= server Text= Button CommandName= cName />

在属性窗口里会对应显示 如下图

   当然某些控件的属性会略有不同 比如常用的Label控件

<asp:Label ID= Label runat= server >这里是Text属性</asp:Label>

在开始符号和结束符号之间的内容会被设置成Text属性

当然 最实用也是我们最常用的是通过C#以编程的方式动态的修改控件的属性 这就不说了

控件的方法

控件通过方法来 *** 作更加复杂的控件 *** 作 通常在控件的方法内部会有很复杂的过程 一般包括几个内部函数和属性的组合 比如

private void LoadDropDownList()

{

ArrayList list = new ArrayList();

list Add( Hello );

list Add( Goodbye );

GridView DataSource = list;

GridView Databind();

}

这样 通过调用Databind()方法 就可以讲gridview和数据源进行绑定

控件的事件

控件通过事件来通知其它类或者客户端其内部的某个状态被改变 事件是一种灵活的机制 当控件与客户端进行交互的时候 事件会通过>其实没什么联系,区别如下:
HTML元素不经过服务器解释,在服务器看来即使你写的再标准或者再不标准,都只是文本常量而已。
HTML服务器控件,一个简单的runat="server",让服务器明白这个标签不再是简单的文本,而是一个HTML服务器控件(SystemWebUIHtmlControlsHtmlControl)。
而标准服务器控件则是继承自SystemWebUIWebControlsWebControl。
以上两者的父类就是不同的,所以差异从这里就有很大的区别了。

NET当中FindControl是在当前的命名容器中搜索带指定id参数的服务器控件。以下是MSDN中对FindControl的介绍:ControlFindControl方法(String)在当前的命名容器中搜索带指定id参数的服务器控件。命名空间:SystemWebUI程序集:SystemWeb(SystemWebdll中)语法publicvirtualControlFindControl(stringid)参数id要查找的控件的标识符。返回值Type:SystemWebUIControl指定的控件,或为null(如果指定的控件不存在的话)。备注使用FindControl可以从代码隐藏页中的函数访问控件、访问另一个容器内的控件,或在调用方不能直接访问目标控件的其他情况下访问控件。此方法将查找控件(仅当控件直接由所指定的容器包含;就是说该方法不能搜索整个控件内的控件的层次结构。有关在不知道控件的直接容器的情况下如何查找该控件的信息,请参见Howto:AccessServerControlsbyID。示例下面的示例定义了一个Button1_Click事件处理程序。在被调用时,此处理程序使用FindControl方法来在包含页上查找ID属性为TextBox2的控件。如果找到了该控件,则使用Parent属性确定其父控件,并将父控件的ID写入页中。如果没有找到TextBox2,则将“ControlNotFound”写入页中。

ascx是aspnet的web控件,其实就是向上封装的页面单元,与masterpage相对,后者是向下封装的框架;你的那句话是在想调用ascx控件页时用的,表示在页面内,注册一个web控件,控件地址是src,标识名是“recommendinfo"
标识前缀是“uc1”。这样在页面中就可以像常规aspnet
的服务器控件一样引用了,语法是<uc1:recommendinfo
id=""
name=""
runat="server"/>当然了,还可以有其它属性,总之和一般的从左侧拖过来的是一样的了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10620749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存