标签容器 - 按钮事件未触发

时间:2010-03-21 07:16:45

标签: .net asp.net validation tabcontainer

在标签容器中,假设我有两个标签[Tab1& TAB2]

Tab1有2个带有必填字段验证器的文本框

Tab2有3个带有必填字段验证器的文本框

现在,即使我填写了TAB1中的所有文本框,也不允许我回发。 [因为TAB2文本框仍然是空的]

&安培;当我填写所有文本框时[Tab1& Tab2],按钮正确触发。

如何避免这种情况?

我的意思是用户必须填写TAB1&amp ;;的详细信息。可以提交详细信息。那时我不希望TAB2验证起作用。

请帮助&如果还有其他需要,请告诉我。

2 个答案:

答案 0 :(得分:2)

ValidationGroup="Tab1"属性添加到第一个标签页上的控件及其各自的验证程序,并为第二个标签控件添加ValidationGroup="Tab2"

答案 1 :(得分:1)

或者您以编程方式添加验证器组:

protected void Page_Init(object sender, EventArgs e)
{
    foreach (TabPanel tp in Tabs1.Tabs)
        SetValidatorGroup(tp.Controls, string.Format("{0}_ValidatorGroup", tp.ID));
}

private void SetValidatorGroup(ControlCollection cc, string validatorGroup)
{
    foreach (Control c in cc)
    {
        if (c is BaseValidator)
        {
            //Response.Write(string.Format("ValidationGroup '{0}' on Control {1}<br />", validatorGroup, c.ID));
            ((BaseValidator)c).ValidationGroup = validatorGroup;
        }
        else if (c is IButtonControl)
        {
            //Response.Write(string.Format("ValidationGroup '{0}' on Control {1}<br />", validatorGroup, c.ID));
            ((IButtonControl)c).ValidationGroup = validatorGroup;
        }
        else
            SetValidatorGroup(c.Controls, validatorGroup);
    }
}