我有一个UserControl说 - GiveIdentity.ascx(它有2个TextBox字段SSN和DOB)
我有另一个UserControl说 - GiveIdentityList.ascx(基本上这是一个转发器渲染,说有5个GiveIdentity UserControl实例)
现在我在说Default.aspx页面上有这个GiveIdentityList UserControl。
我想在GiveIdentity.ascx控件本身上提交一个'IsValid'属性或方法...以便它会重新检查该特定控件上的所有文本框字段是否有效...(记得我不要想要用户Page.Validators()或Default.aspx页面上的东西) - 我希望UserControls位于另一个UserControls里面,它是一个转发器 - 暴露IsValid属性 - 暗示其内部的所有文本和日期控件都是有效的或不......
感谢您的帮助......谢谢
答案 0 :(得分: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
如果这不能回答你的问题,请告诉我。