我有一个表单放在Web用户控件上,但“提交”按钮位于父页面上。
表单包含用户信息。管理员可以显示相同的表单来编辑用户以及用户注册和更新个人资料。
我想在这3个地方只显示一个表格。
管理页面将提供更多信息,以及“用户信息”控件。
如何从父页面引用控制页面上的项目?
我这样做错了吗?答案 0 :(得分:6)
您可以通过属性访问控件的元素(例如包含的TextBox
)。
E.g。
public partial class MyControl : UserControl
{
public string MyText
{
get { return MyTextBox.Text; }
set { MyTextBox.Text = value; }
}
}
然后,从包含Web用户控件的页面访问属性。
答案 1 :(得分:0)
您可以使用FindControl方法并使用CType进行强制转换。这是一个例子......
Dim objUserControl As UserControl = CType(Me.FindControl("IdOfUserControl"), UserControl)
Dim strTextOfLabelInUserControl As String = CType(objUserControl.FindControl("IdOfLabelInUserControl"), Label).Text
或更好......
Dim strTextOfLabelInUserControl as String = CType(IdOfUserControl.FindControl("IdOfLabelInUserControl"), Label).Text
但是,您可能需要考虑使用Uwe Keim的方法来避免转换和FindControl方法的开销。他翻译成VB .Net就是这个......
Public Partial Class WebUserControl1
Inherits System.Web.UI.UserControl
Public Property TextOfLabel() As String
Get
Return IdOfLabelInUserControl.Text
End Get
Set(ByVal value As String)
IdOfLabelInUserControl.Text = value
End Set
End Property