当你创建一个用户自定义控件时,可能要在其中加入一些属性。这使得使用你的控件的人可以对该控件进行自定义,或者从该控件中取得一些值。只读属性是你可以创建的属性的一种。这种类型的属性只能允许使用该控件的人员从该控件中获取属性值,而不能对这种类型的属性进行设置。通过一个属性返回当前系统日期是只读属性的一种典型应用。或者如果在你的自定义控件中有一个返回当前版本的属性的话,最好将其作为只读属性。
下面的实例中所提供的用户自定义控件,当在一个asp.net页面上定义的时候,将显示一些控件,访问者可以使用这些控件来输入其姓名和密码。本控件提供了三个只读属性,分别返回在textbox中输入的数据和本控件的版本信息。
在这个用户自定义控件文件中,定义了二个textbox控件。第一个textbox控件用来输入访问者的姓名:
<asp:textbox
id=”txtusername”
runat=”server’
/>
第二个textbox控件允许访问者在其中输入密码:
<asp:textbox
id=”txtpassword”
runat=”server”
textmode=”password”
/>
下面是一段代码,当页面首次载入时会自动运行:
sub page_load(s as object, e as eventargs)
if not ispostback then
txtusername = “Your name Here”
end if
end sub
这段代码只是实现了将默认文本放在第一个textbox控件中的功能。要注意的是这段代码只能从这个用户自定义控件运行。这是因为,定义用户自定义控件的这个页面并产不能直接对这个控件中的底层进行访问,而是通过你自己的那些属性来对底层的控件进行访问。
本控件提供了三个属性,所有的这三个属性都是只读的。第一个属性称作username(用户名),并返回一个字符串:
public readonly property username() as string
get
username = txtusername.text
end get
end property
这个属性返回在第一个textbox中输入的文本。
第二个属性将返回textpassword中的那个textbox控件中输入的密码:
public readonly property password() as string
get
password = txtpassword.text
end get
end property
第三个属性为version,返回这个自定义控件的版本号:
public readonly property version() as string
get
version = “1.0”
end get
end property
在保存了这个控件的定义文件后,就可以在一个asp.net页面中定义一个这样的用户自定义控件了:
<my:logincontrol
id=”msc1”
runat=”server”
/>
<asp:button
id=”button”
text=”OK!”
onclick=”button_click”
runat=”server”
/>
<asp:label
id=”lblmessage”
runat=”server”
/>
当按下button控件时,会触发以下代码:
sub button_click(s as object, e as eventargs)
lblmessage.text=”you entered:” & msc1.username &”---” & msc1.password & “<br>” &”this control version:” & msc1.version
end sub
如果你把这句代码加在button_click子过程中,将会返回一个错误:
msc1.username=”Lemongtree”
这是因为这个属性是只读的。
出处:
责任编辑:幻想曲
上一页 向自定义控件中添加控件 下一页 在用户控件中创建一个只写的属性
◎进入论坛网络编程版块参加讨论
|