0

我有一个 UserControl 说 - GiveIdentity.ascx(它有 2 个文本框字段 SSN 和 DOB)

我有另一个 UserControl 说 - GiveIdentityList.ascx(基本上这是一个转发器渲染,比如 GiveIdentity UserControl 的 3 个实例)

现在我在说 Default.aspx 页面上有这个 GiveIdentityList UserControl。

我想在 GiveIdentity.ascx 控件本身上添加一个“IsValid”属性或方法……这样它就会重新运行该特定控件上的所有文本框字段是否有效……(记住我不想用户 Page.Validators() 或 Default.aspx 页面上的某些内容)-我希望位于另一个作为中继器的 UserControls 内的 UserControls-公开 IsValid 属性-表明其内部的所有文本和日期控件是否有效。 ...

感谢您的帮助...谢谢

4

1 回答 1

0

您可以将用户控件中的公共方法公开给使用该控件的任何页面。如果状态发生变化,您还应该添加一个事件来提醒父页面。添加这些方法很容易:

Partial Class user_controls_myControl
    Inherits System.Web.UI.UserControl

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

   End sub

   Public Function isValid() as boolean

      if(me.checkbox1.text<>"" andalso me.checkbox2.text<>"") then
           return true
      else
           return false
      end if 
   End sub
end Class

现在,在包含所有这些控件的 ASPX 页面中,您可以检查该特定功能以确保它们有效。例如,如果您有一个名为 giveIdentity1 的用户控件,您将希望遍历转发器并将对象强制转换为您的用户控件类型。然后您可以像这样检查 isValid 函数:

dim getBool as boolean 
getBool = me.giveIdentity1.isValid

如果您需要帮助迭代中继器,请告诉我

您还可以创建自己的服务器事件来注册更改。您可以阅读我在此处回复的类似主题的帖子: Handling events of usercontrols within listview

如果这不能回答您的问题,请告诉我。

于 2013-03-11T14:08:33.500 回答