2

AllowAutomaticxxxx プロパティが true に設定され、EditMode="EditForms" が設定された asp.net ajax 用の Telerik グリッドがあります。mastertableview は部門用であり、detail テーブルは機能用です。現在、新しい部門と機能を挿入し、部門と機能を編集することもできます。部門と機能の両方に必須フィールドバリデーターを使用しています。今、問題に直面しています。1つの編集機能と1つの挿入部門を開くと、バリデーターが重なって表示されます。つまり、それらを同時に開くと、関数を編集して更新ボタンをクリックすると、部門名のバリデーターが表示されます!! もう1つ、グリッドにajaxmanagerを使用しましたが、これが問題かどうかわかりません。

4

1 に答える 1

2

グリッドのitemCreatedイベントで、このように編集と削除ごとにvalidationgroupを設定することで、この問題を解決しました

   If TypeOf e.Item Is Telerik.Web.UI.GridEditableItem AndAlso e.Item.IsInEditMode Then

        If "Divisions".Equals(e.Item.OwnerTableView.Name) Then

            Dim rvDivisionName = DirectCast(e.Item.FindControl("rvDivisionName"), RequiredFieldValidator)
            If TypeOf e.Item Is Telerik.Web.UI.GridEditFormInsertItem Then
                rvDivisionName.ValidationGroup = "addDivisionRowValidation"
                TryCast(TryCast(e.Item, Telerik.Web.UI.GridEditFormItem).FindControl("PerformInsertButton"), LinkButton).ValidationGroup = "addDivisionRowValidation"
            Else
                rvDivisionName.ValidationGroup = "editDivisionRowValidation"
                TryCast(TryCast(e.Item, Telerik.Web.UI.GridEditFormItem).FindControl("UpdateButton"), LinkButton).ValidationGroup = "editDivisionRowValidation"
            End If
        ElseIf "Functions".Equals(e.Item.OwnerTableView.Name) Then
            Dim rvFunctionName = DirectCast(e.Item.FindControl("rvFunctionName"), RequiredFieldValidator)
            Dim rvFunctionRoleName = DirectCast(e.Item.FindControl("rvFunctionRoleName"), RequiredFieldValidator)
            If TypeOf e.Item Is Telerik.Web.UI.GridEditFormInsertItem Then
                rvFunctionName.ValidationGroup = "addFunctionRowValidation"
                rvFunctionRoleName.ValidationGroup = "addFunctionRowValidation"
                TryCast(TryCast(e.Item, Telerik.Web.UI.GridEditFormItem).FindControl("PerformInsertButton"), LinkButton).ValidationGroup = "addFunctionRowValidation"
            Else
                rvFunctionName.ValidationGroup = "editFunctionRowValidation"
                rvFunctionRoleName.ValidationGroup = "editFunctionRowValidation"
                TryCast(TryCast(e.Item, Telerik.Web.UI.GridEditFormItem).FindControl("UpdateButton"), LinkButton).ValidationGroup = "editFunctionRowValidation"
            End If
        End If
    End If
于 2012-11-27T09:37:14.377 に答える