如何从Web用户控件提交数据

时间:2011-01-14 20:22:26

标签: .net asp.net vb.net

我有一个表单放在Web用户控件上,但“提交”按钮位于父页面上。

表单包含用户信息。管理员可以显示相同的表单来编辑用户以及用户注册和更新个人资料。

我想在这3个地方只显示一个表格。

管理页面将提供更多信息,以及“用户信息”控件。

如何从父页面引用控制页面上的项目?

我这样做错了吗?

2 个答案:

答案 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