用户控件a.ascx,页面a.aspx。比如a.ascx上面简单地有一个LABEL和一个按钮。双击a.ascx,进入a.ascx.vb,在page_load中将LABEL上的显示文本设置为HI,按钮的点击事件中将其改为HELLO。代码如下:Public Class a
Inherits System.Web.UI.UserControl#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Button1 As System.Web.UI.WebControls.Button '注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Label1.Text = "HI"
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "hello"
End Sub
End Class我的问题是,如何将这个LABEL的固有属性暴露给a.aspx文件呢?我将控件拖到页面上,但是在页面的代码中无法访问这些属性。看了一些文章,知道可以自己定义属性,但是自己定义的属性是写在哪里呢?是a.ascx中吗?我在class a中定义了属性,但是虽然将控件拖到了页面上,在a.aspx.vb中却无法访问,必须将class a实例化出一个来才能用,可我又想不出这个在代码中new出来的a与页面上那个用户控件a1有什么关系呢?是两码事吧?有没有办法在aspx.vb中直接访问到用户控件中各个控件的固有属性呢?比如直接设置它们的背景色什么的?
Inherits System.Web.UI.UserControl#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Button1 As System.Web.UI.WebControls.Button '注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Label1.Text = "HI"
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "hello"
End Sub
End Class我的问题是,如何将这个LABEL的固有属性暴露给a.aspx文件呢?我将控件拖到页面上,但是在页面的代码中无法访问这些属性。看了一些文章,知道可以自己定义属性,但是自己定义的属性是写在哪里呢?是a.ascx中吗?我在class a中定义了属性,但是虽然将控件拖到了页面上,在a.aspx.vb中却无法访问,必须将class a实例化出一个来才能用,可我又想不出这个在代码中new出来的a与页面上那个用户控件a1有什么关系呢?是两码事吧?有没有办法在aspx.vb中直接访问到用户控件中各个控件的固有属性呢?比如直接设置它们的背景色什么的?
解决方案 »
- mobile:objectlist实现分页
- 我都快疯了!!!这是怎么回事啊
- 多维数组保存数据问题!
- 命名空间相冲突了,各位来帮帮忙忙了
- 急呀,各位帮帮忙!最好附上代码!C#将一html页面所有内容照html样式显示在word文档中但不显示table的所有边框
- 小问题寻求帮忙?在线等啊。。。。。。
- 谁有VS2005的下载地址给我一个谢谢哈
- 我做好的ASP.NET网站在本地可以访问,上传后提示下面错误,求高手帮忙解决!!谢谢
- 为什么会出现空白页,哪位高手能帮我看一看错在哪?非常感谢!在线等待
- 我写的控制台程序可以改AD用户密码,为什么改写为ASP.net程序后就不行了呢??
- Infragistics中控件中的webgrid新增一行的函数是是么?
- 我的treeView控件怎么总是无法显示目录树的结构?
只要在页面的cs文件声明一下那个usercontrol,就可以用它的方法和属性了
默认拖进去代码里并没有声明.
public 你的UserControl UserControlID;
用js:
var control=document.getElementById("UserControlId");
var property=control.getAttribute("属性");
看property.value能否取到值?
<Module:top id="top1" runat="server" />
其实就是一个文件包含吧。我理解
a.ascx定义属性
private string title="默认";
public string Title
{
set
{
title=value;
}
get
{
return title;
}
}在引用控件的页面:b.aspxprotected namespace.a mya;个属性赋值:
mya.Title="刚才设置";这个时候,控件a.ascx的title的值也变成了“刚才设置”;注意两个变量title与Title的区别。
如果我的用户控件上面有一个LABEL,那么我在aspx上面要改变它的背景色,就必须在用户控件上面定义一个属性:
public color BackColor
{
set
{
label1.backcolor=value;
}
get
{
return label1.backcolor;
}
}有没有无需定义这种属性而直接对其操作的办法呢?难道要把所有的外观属性都一一对应地写出自定义属性才行吗?