如何从代码隐藏中引用 GridView 中定义的 RequiredFieldValidator

How to reference RequiredFieldValidator defined in GridView from code-behind

我有一个 GridView,我在其中定义了 EditTemplateFooterTemplate

GridViewTextBox 定义了 RequiredFieldValidator:

<FooterTemplate>
   <asp:TextBox ID="txtHolidayNameAdd" runat="server" Width="90%"></asp:TextBox>
   <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtHolidayNameAdd" ErrorMessage="Holiday Name is Required" ForeColor="Red">*</asp:RequiredFieldValidator>
</FooterTemplate>

Validator 只应在用户添加数据时触发,并且应在编辑期间禁用。

如果用户未提供必填字段,我有一个显示 jQuery 对话框的验证例程:

function WebForm_OnSubmit() {
    if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
        $("#errorDisplay").dialog({
            title: "Validation Error",
            modal: true,
            resizable: false,
            width: 250,
            buttons: {
                Close: function () {
                    $(this).dialog('close');
                }
            }
        });
        return false;
    }
    return true;
}

如何让 validator 仅在添加数据时验证并在编辑时禁用?

您可以使用验证组。在编辑时,您应该从验证器中删除验证组 属性。完成编辑后,您可以在验证器上再次应用验证组。我会朝这个方向看。