3

タブ コンテナに 2 つのタブ [Tab1 & Tab2] があるとします。

Tab1 には、必須フィールド バリデーターを含む 2 つのテキスト ボックスがあります

Tab2 には、必須フィールド バリデーターを含む 3 つのテキスト ボックスがあります

TAB1 のすべてのテキスト ボックスに入力しても、ポストバックできません。[TAB2 テキスト ボックスがまだ空であるため]

& すべてのテキストボックス [Tab1 と Tab2 の両方] に入力すると、ボタンが正しく起動します。

これを回避するには??

つまり、ユーザーは TAB1 の詳細を入力する必要があり、詳細を送信できます。その時点で、TAB2 検証を機能させたくありません。

助けてください。他に何か必要な場合はお知らせください。

4

2 に答える 2

2

ValidationGroup="Tab1"最初のタブにあるコントロールとそれぞれのバリデータ、および 2 番目のタブ コントロールにプロパティを追加しValidationGroup="Tab2"ます。

于 2010-03-21T08:24:00.387 に答える
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);
    }
}
于 2011-07-06T08:13:03.453 に答える