【问题标题】:Asp.net field validator not firing after partial page update部分页面更新后,Asp.net 字段验证器未触发
【发布时间】:2011-06-13 13:20:17
【问题描述】:

我在 Asp.net UpdatePanel 中有 TextBox、RequiredFieldValidator 和一个按钮。最初,RequiredFieldValidator 的 Enabled 属性设置为 false,以便在单击 UpdatePanel 内的 Button 时第一次不会触发验证。但是,在 UpdatePanel 内的 Button 事件处理程序上,我将 TextBox 的值设置为 DateTime。现在,我还使用 ScriptManager.RegisterStartupScript 方法注册了一个启动脚本,以通过调用 ValidatorEnable 函数在客户端上启用上述验证器。如果 TextBox 为空,我在 UpdatePanel 外还有一个按钮,点击该按钮时,RequiredFieldValidator 应该触发。但是,在单击 UpdatePanel 内的 Button 后,TextBox 的值设置为最新日期时间并启用验证器,但在从文本框中删除文本并单击更新面板外的按钮后,验证器不会被触发。

请参考以下代码。

客户端代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="txtSomeValue" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rqdtxtSomeValue" runat="server" Enabled="false" ErrorMessage="*"
            ControlToValidate="txtSomeValue"></asp:RequiredFieldValidator>
        <asp:Button ID="btnGetValue" runat="server" Text="Get Current Date" OnClick="btnGetValue_Click" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnSave" runat="server" Text="Save" />

服务器端代码:

protected void btnGetValue_Click(object sender, EventArgs e)
{
    txtSomeValue.Text = DateTime.Now.ToString();

    string script = @"javascript:ValidatorEnable(document.getElementById('" + rqdtxtSomeValue.ClientID + "', true))";
    ScriptManager.RegisterStartupScript(btnGetValue, btnSave.GetType(), "btnGetValue_Click", script, true);
}

谁能告诉我如何在部分页面更新后重新启用字段验证器?

【问题讨论】:

    标签: asp.net asp.net-ajax


    【解决方案1】:

    您确定在 btnGetValue 返回并更新 UpdatePanel 后启用验证器吗?您如何测试它是否启用了验证器?您是否尝试在代码隐藏中将验证器设置为启用?

    protected void btnGetValue_Click(object sender, EventArgs e) {
        txtSomeValue.Text = DateTime.Now.ToString();
    
        rqdtxtSomeValue.Enabled = true;
        ScriptManager.RegisterStartupScript(btnGetValue, btnSave.GetType(), "btnGetValue_Click", script, true); 
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多